Rinse the lentils: Place red lentils in a fine-mesh sieve and rinse under cold water until it runs clear. Set aside.
Sauté the aromatics: Warm oil in a large pot over medium heat. Add onion and a pinch of salt, and cook 5–6 minutes until soft and translucent.
Stir in garlic and ginger; cook 1 minute until fragrant.
Toast the spices: Add turmeric, cumin, and coriander. Stir for 30–45 seconds to bloom the spices. Mix in tomato paste and cook another minute to caramelize slightly.
Add the base: Pour in diced tomatoes, coconut milk, and 2 cups of broth or water.
Stir well to combine and bring to a gentle simmer.
Simmer the lentils: Add rinsed lentils. Reduce heat to medium-low and cook, uncovered, 15–20 minutes, stirring occasionally. Add more liquid as needed for a creamy, stew-like consistency.
Optional veggies: If using sweet potato, add it with the lentils so it has time to soften.
For spinach, kale, or peas, stir them in during the last 3–5 minutes.
Finish and season: When lentils are tender and the curry is thick, stir in garam masala and lemon or lime juice. Taste and adjust salt, pepper, and heat with chili flakes or cayenne.
Serve: Spoon over warm rice or quinoa. Top with chopped cilantro and an extra squeeze of citrus if you like.