In a large stock pot or Dutch oven, heat the oil. Saute the onion over medium-high heat until soft, 5 minutes. Add the garlic, ginger, serrano, cumin, garam masala, and coriander. Cook until very fragrant, 2 minutes. Carefully pour in the tomatoes and add the salt, scraping up any brown bits that formed on the bottom of the pan. Cook, stirring occasionally, until the liquid has reduced and the tomato chunks have softened, 5 minutes. Add the coconut milk and 1 cup water. Bring to a boil over high heat. Stir in the lentils and reduce the heat to medium-low. Cook until the lentils are tender, 25-35 minutes, stirring occasionally to prevent the lentils from sticking to the bottom of the pan. Fold in the spinach and cook until wilted, 3 minutes. Serve alongside coconut rice.
This is a great make-ahead meal and can keep in the fridge for up to week.