Gather a heavy-bottomed skillet, a wooden spoon, and a small bowl for spices. Heat 2 tablespoons of oil over medium heat until shimmering and fragrant.
Add the finely chopped onion and cook, stirring occasionally, until it turns golden and smells sweet, about 5 minutes.
Stir in cumin and garam masala, toast for about 30 seconds until fragrant, being careful not to burn the spices.
Add the minced garlic and grated ginger, cooking for another minute until aromatic and slightly bubbly.
Stir in the drained chickpeas, coating them with the spice mixture, and cook for 2 minutes to heat through and develop flavor.
Pour in the coconut milk and chopped tomatoes (if using), bringing the mixture to a gentle simmer. Let it cook for about 10 minutes, stirring occasionally, until the sauce thickens slightly and becomes rich and fragrant.
Add the chopped spinach in batches, stirring until each addition wilts and turns bright green, about 2-3 minutes.
Taste and adjust salt as needed, then squeeze in the lemon juice for brightness. Cook for another minute until well combined.
Remove from heat and let sit for a couple of minutes to allow flavors to meld. Serve hot with rice or flatbread, garnished with herbs if desired.