Heat the olive oil in a large skillet over medium heat. Add the onion and cook for 8 minutes, stirring often, or until soft and well browned.
Reduce the heat to medium-low and add the cumin seeds, garam masala, coriander, turmeric, cardamom, and a pinch of cayenne. Stir and cook for 30 seconds, or until fragrant. Stir in the garlic, ginger, salt, and ¼ cup of the water.
Add the tomatoes, breaking them apart with your hands as you add them or crushing them with a wooden spoon in the skillet. Bring to a simmer and cook for 8 to 10 minutes, or until the sauce thickens. Add the chickpeas and the remaining ¼ cup water, stir, and simmer for 20 to 25 minutes, stirring occasionally, or until thick. Stir in the cilantro and lemon juice.
Serve over rice with dollops of Greek yogurt, more cilantro, and more lemon juice, if desired.