Heat the oil in a deep skillet over medium heat until it shimmers and begins to gently crackle.
Add the chopped onion and cook, stirring occasionally, until it becomes golden and fragrant, about 5 minutes.
Stir in the minced garlic and grated ginger; cook for about 1 minute until fragrant and slightly darker, filling the kitchen with a spicy aroma.
Add the tomato paste and stir well, cooking for 2-3 minutes until it deepens in color and releases a rich aroma.
Sprinkle in the garam masala, turmeric, and chili powder; toast the spices for about 30 seconds until fragrant, then stir to combine.
Add the drained chickpeas to the pan, stirring to coat them evenly with the spiced tomato mixture, and cook for 3 minutes, allowing the flavors to meld.
Pour in the water or broth, then bring to a gentle simmer. Let it cook uncovered for about 10 minutes, until the sauce thickens slightly and the chickpeas soften.
Reduce the heat to low and stir in the yogurt, cooking for another 2 minutes until the sauce is creamy and well combined.
Taste the dish and adjust seasoning with a pinch of salt if needed. Garnish with chopped cilantro if desired.
Serve hot over rice or with naan, or enjoy straight from the pan for a cozy, flavorful meal.