Heat the oil in a large skillet over medium heat until it shimmers and begins to lightly smoke.
Add the finely chopped onion and sauté, stirring occasionally, until it turns translucent and starts to brown at the edges, about 5 minutes.
Stir in the minced garlic and ginger, cooking until fragrant, about 1 minute. The mixture should smell warm and spicy.
Add the toasted garam masala and cook for another 30 seconds, allowing the spices to bloom and release their aroma.
Pour in the diced or crushed tomatoes, stirring to combine, and let them cook down until the mixture thickens and deepens in color, about 5 minutes.
Gently fold in the rinsed chickpeas, stirring to coat them evenly with the spiced tomato sauce.
Pour in the coconut milk or cream, stirring well to create a silky, rich sauce. Adjust the heat to maintain a gentle simmer.
Simmer the curry for about 10 minutes, allowing the flavors to meld and the sauce to thicken slightly. Taste and adjust seasoning if needed.
Turn off the heat and let the curry rest for a few minutes before serving to allow the flavors to settle.
Serve the chickpea tomato curry hot over steamed rice or with warm flatbread, garnished with fresh herbs if desired.