Inspired by the curries of Southern India, this dish combines a complex mélange of spices with the mellowness of coconut milk for a rich, deep flavor. Florets of cauliflower are cooked in the sauce, and baby spinach is added at the last minute so it doesn't overcook.
This is a hearty dish that can stand alone as a meal when served with rice or make a tasty accompaniment to simple meats and fish.
Place the onion, ginger, and jalapeño in a food processor and pulse until the mixture is finely chopped. Add the garam masala, curry powder, cardamom and cumin, and process until the mixture is thick and smooth.
Transfer the spice paste to a large saucepan and add the oil. Cook over medium heat, stirring frequently, until the paste starts to color, about 10 minutes — you'll want to continually scrape the bottom of the pot, as the mixture likes to stick.
Stir in the tomato paste and continue cooking, stirring and scraping very frequently, until the paste is brown and aromatic, about 5 more minutes. Add the broth and bring the mixture to a simmer, stirring to deglaze the bottom of the pot. Add the coconut milk, cauliflower and tomatoes. Simmer over medium-low heat, covered, until the cauliflower is crisp-tender, about 15 minutes.
Stir in the spinach and cook, uncovered, until it wilts, 2 to 3 minutes. Remove the pot from the heat and add the lime juice and cilantro. Serve hot.