In a large skillet or pot, heat olive oil over medium heat. Add diced onion and carrot, cooking until softened, about 5 minutes.
Stir in tomato paste, grated ginger, minced garlic, garam masala, turmeric, chili powder, paprika, cumin, and cayenne pepper. Cook for 2 minutes until fragrant.
Add cauliflower florets, diced tomatoes with their juice, and vegetable broth. Bring to a boil, then reduce heat to a simmer. Cover and cook for 20 minutes, or until cauliflower is tender.
Stir in chickpeas, heavy cream or coconut milk, and lemon juice. Cook for an additional 5 minutes, or until heated through.
Season with salt to taste and garnish with chopped fresh cilantro before serving.