Heat a large pan over medium heat until the oil shimmers. Add the toasted cumin seeds and cook until fragrant, about 30 seconds.
Add the chopped onion and cook slowly, stirring occasionally, until it becomes translucent and starts to caramelize, about 8 minutes. The onions should be soft and slightly golden.
Stir in the minced garlic and grated ginger, cooking just until fragrant—about 1 minute—until you smell the warm, pungent aroma.
Add diced tomatoes to the pan and cook until they break down and release their juices, about 5 minutes. The mixture should look saucy and fragrant, with the tomatoes starting to soften.
Pour in the drained chickpeas and stir them into the tomato mixture, cooking for another 2 minutes to absorb the flavors.
Add the ground cumin, chili powder, and a pinch of salt. Stir well and cook for about 1 minute until the spices are fragrant and evenly coated.
Pour in a splash of water or vegetable broth if needed to loosen the sauce, then bring to a gentle simmer. Cover partially and cook for 10 minutes to let the flavors meld.
Stir in the fresh spinach, adding it in batches if necessary. Cook just until wilted, about 2-3 minutes, until the greens are vibrant and tender.
Finish the curry by squeezing in fresh lemon juice and stirring in the coconut milk for extra creaminess, if using. Taste and adjust seasonings as needed.
Remove from heat and let it rest for a few minutes. Serve hot, garnished with extra lemon or herbs if desired, alongside rice or flatbread.