Heat a large pot or Dutch oven over medium heat. Add the oil and red onion and cook, stirring frequently until it is deeply caramelized. Reduce the heat to low.
Add the garlic, cumin seeds, coriander, ginger, garam masala, and cardamom pods, and fry them, stirring constantly, until the cumin seeds pop and the spices are fragrant and toasty, about 30 seconds.
Pour in the juice and the tomatoes from the can and crush them in the pot with a potato masher. Add the salt and the potatoes.
Raise the heat to medium-high, and bring the pot to a boil. Reduce the heat to medium, add the cilantro and cayenne, and all of the rest of the spices, and simmer the sauce until it reduces a bit and begins to thicken. Add the chickpeas, and stir to combine.
Keep simmering the curry on low until the chickpeas and potatoes soften (about 30 minutes).
Serve and top with cilantro and yogurt.