Prep the basics: Rinse the red lentils under cold water until the water runs mostly clear.
Chop the onion and carrots, mince the garlic, and grate the ginger.
Sweat the aromatics: Warm the oil in a large pot over medium heat. Add the onion and a pinch of salt. Cook 4–5 minutes, stirring, until softened and lightly golden around the edges.
Add garlic and ginger: Stir in the garlic and ginger.
Cook 30–60 seconds until fragrant, being careful not to brown them.
Bloom the spices: Sprinkle in the cumin, coriander, turmeric, smoked paprika, and red pepper flakes. Stir for 30 seconds to coat the onions and release the spices’ aroma.
Build the body: Add the chopped carrots and the rinsed lentils. Stir to combine and coat with the spiced oil.
Pour and simmer: Add the broth (or water) and bring to a gentle boil.
Reduce to a simmer, cover partially, and cook 18–22 minutes, until the carrots are tender and the lentils are soft and breaking down.
Finish with richness: Stir in the coconut milk (or butter). Simmer 2 more minutes. Taste and season with salt and pepper.
Choose your texture: For a rustic soup, leave it as is.
For a creamier bowl, blend part of it with an immersion blender, or transfer 2 cups to a blender and puree, then return it to the pot.
Brighten it up: Add the zest of half a lemon and squeeze in about 1 tablespoon lemon juice. Taste and adjust with more lemon, salt, or chili as needed.
Serve and garnish: Ladle into bowls. Top with chopped cilantro or parsley and a dollop of yogurt if you like.
A drizzle of olive oil or extra chili flakes is a nice finish.