Heat the oil in a large skillet or saucepan over medium heat. Add onion and cook until soft and golden, about 5–7 minutes. Add garlic, ginger and green chilies sauté for another 1-2 minutes, until fragrant.
Stir in garam masala, cumin, coriander, turmeric, paprika, chili powder, cayenne, and salt. Cook for 30–60 seconds, stirring constantly to toast the spices without burning them.
Add pureed tomatoes. Cook, stirring occasionally, for 8-10 minutes, until the tomatoes thicken and deepen in color.
Add chickpeas and water or broth. Stir well, bring to a simmer, then reduce heat to low and cook uncovered for 20-25 minutes, stirring occasionally. Add more water or broth if you prefer it saucier.
Stir in lemon juice. Taste and adjust salt and spices as needed.
Serve hot, garnished with fresh cilantro, over rice or with naan.
Notes
Storage: Let leftovers cool completely, then transfer to an airtight container. Store in the fridge for 4–5 days or freeze for up to 3 months.
Reheating: Warm on the stovetop over medium heat or in the microwave until heated through. Add a splash of water or broth if the sauce thickens too much.
Make it ahead: Chana masala tastes even better the next day, so it’s great for meal prep!
Spice level: For a mild version, skip the cayenne and use half the green chile or none at all.