Heat the oil in a large skillet or Dutch oven over medium heat. Add the onion and cook for 5 to 6 minutes until softened and lightly golden. Stir in the garlic and ginger. Cook for about 1 minute until fragrant.
Add the tomato paste, garam masala, cumin, coriander, paprika, turmeric, cayenne, salt, and black pepper. Stir constantly for 1 to 2 minutes to toast the spices and deepen their flavor.
Pour in the tomato sauce and vegetable broth. Stir well and let the sauce simmer for 5 to 7 minutes until slightly thickened.
For an extra smooth restaurant-style sauce, carefully blend the sauce using an immersion blender or transfer it to a blender before returning it to the pan.
Add the chickpeas and stir until evenly coated. Simmer for 8 to 10 minutes so the chickpeas absorb the flavors.
Reduce the heat to low and stir in the coconut milk. Simmer gently for another 3 to 5 minutes until the curry becomes creamy and silky.
Mix in the maple syrup, lime juice, and crushed kasuri methi if using. Taste and adjust the seasoning with additional salt or spice as needed.
Garnish with fresh cilantro and serve hot with steamed basmati rice and warm vegan naan.