Sweat the aromatics. Heat olive oil in a large pot over medium heat.
Add onion, carrots, and celery. Cook 5–7 minutes until softened and just starting to turn golden.
Add garlic and ginger. Stir in garlic and ginger. Cook 1 minute, stirring, until fragrant.
Don’t let them brown.
Bloom the spices. Add curry powder, turmeric, and red pepper flakes. Stir for 30 seconds to wake up the spices. This step deepens flavor fast.
Stir in tomato paste. Cook the paste for 1–2 minutes until it darkens slightly.
This gives a richer, rounder base.
Add lentils and broth. Add rinsed red lentils and vegetable broth. Stir, scraping the bottom of the pot to release any browned bits.
Simmer. Bring to a gentle boil, then reduce to a simmer. Cook uncovered for 18–22 minutes, stirring occasionally, until lentils are tender and the soup thickens.
If adding diced sweet potato, add it now so it cooks through.
Finish with coconut milk. Pour in coconut milk and stir. Simmer 3–5 more minutes. If using spinach or peas, add them in the last 2 minutes to keep them bright.
Season and brighten. Add lime juice, then taste.
Season with salt and pepper as needed. The lime should lift the richness without taking over.
Adjust texture. For extra creaminess, blend a couple of cups of the soup and return it to the pot, or use an immersion blender for a few short pulses. Keep some texture for a more satisfying bowl.
Garnish and serve. Ladle into bowls and top with chopped cilantro or parsley.
Add a swirl of coconut milk or a squeeze of lime if you like.