Prep the basics: Rinse the lentils until the water runs clear. Chop the onion, mince the garlic, and grate the ginger.
Open the tomatoes and measure your spices so they’re ready.
Sweat the aromatics: Warm the oil in a large pot over medium heat. Add the onion with a pinch of salt and cook 6–8 minutes until soft and lightly golden.
Add garlic and ginger: Stir in the garlic and ginger. Cook 1 minute until fragrant, stirring often to prevent burning.
Toast the spices: Add cumin, coriander, turmeric, garam masala, and paprika or cayenne.
Toast for 30–45 seconds, stirring, until the spices bloom and smell nutty.
Build the base: Stir in the tomato paste and cook 1–2 minutes to caramelize slightly. Add the diced tomatoes and a pinch of salt. Simmer 2–3 minutes to reduce a bit.
Add lentils and liquid: Pour in 3 cups of broth or water and add the rinsed lentils.
Bring to a gentle boil, then reduce to a simmer. Cover partially and cook, stirring occasionally.
Cook time: For red lentils, simmer 15–20 minutes until tender and creamy. For brown or green lentils, simmer 25–35 minutes until soft but not mushy.
Add more liquid as needed to keep a saucy consistency.
Stir in coconut milk (optional): Add 1/2 to 3/4 cup coconut milk for a richer, silkier curry. Simmer 3–5 minutes more.
Add spinach: Fold in the spinach and cook 1–2 minutes until wilted (or 3–4 minutes for frozen). The curry should look vibrant and creamy.
Finish and season: Squeeze in half a lemon or lime.
Taste and adjust salt, pepper, and heat. Add a pinch more garam masala if you want a warmer finish.
Serve: Top with chopped cilantro. Spoon over rice or serve with warm naan.
Add extra lemon on the side if you like brightness.