Heat the oil in a large skillet over medium heat until shimmering. Add the chopped onion and sauté for 5-7 minutes, stirring frequently, until golden and fragrant. The onion should become soft and translucent with a deep golden hue.
Add the minced garlic, grated ginger, and green chili (if using), cooking for another 30 seconds until fragrant and slightly bubbling. You should smell a spicy, inviting aroma as the garlic releases its scent.
Stir in the cumin seeds, coriander powder, and turmeric. Toast the spices for about 30 seconds, listening for a crackle and watching for a fragrant aroma to develop. Be careful not to burn them, as burnt spices can turn bitter.
Pour in the crushed tomatoes and stir everything together. Let the mixture simmer gently for 8-10 minutes, stirring occasionally, until it thickens and turns a rich, deep red. The sauce should smell savory and spicy, with a slight tang from the tomatoes.
Add the rinsed chickpeas to the tomato sauce, stirring gently to coat them evenly. Cook uncovered for another 10 minutes on low-medium heat, allowing the chickpeas to absorb the flavors and soften further. The dish should become thick, with the chickpeas plump and tender.
Stir in the coconut milk for extra creaminess, cooking for an additional 2 minutes. Taste the sauce and adjust with salt as needed. It should be fragrant, thick, and vibrant in color, with a silky texture.
Remove from heat and let the dish rest for a couple of minutes. Finish by stirring in chopped cilantro for a fresh herbal aroma and a splash of lemon juice if desired. Serve hot over rice or with warm naan, garnished with extra cilantro if you like.