Start by preparing your vegetables; dice the onion, carrots, potatoes, and celery; mince the ginger and garlic. You want the pieces of onion, carrot, potato, and celery to all be roughly the same size.
Heat a large soup pot or Dutch oven over medium heat. Add the coconut oil and use a wooden spoon to coat the pot with the oil as it melts. Once the oil is shimmering, add the diced onion to the pot. Cook, stirring occasionally, for about 5 minutes. Add the minced garlic and ginger and cook for a further 2 minutes, or until fragrant.
Transfer the diced vegetables into the soup pot and give everything a good stir. Season with salt and pepper. Cook for another 5 minutes.
Rinse the red lentils in a fine-mesh sieve, then transfer to the soup pot along with the spices. Stir everything well and cook for 2 minutes, gently toasting the spices.
Pour in the broth and coconut milk, stirring to incorporate them. Bring the soup to a boil, then reduce to a simmer. Cover and cook for 20 minutes, stirring occasionally.
After 20 minutes, add the handfuls of spinach. Cook for another minute or two, stirring the spinach into the soup until it wilts. Taste the soup and adjust the seasoning as needed.
Serve the soup warm, garnished with fresh cilantro and a dollop of plain yogurt (optional). The soup will keep in airtight containers in the fridge for up to a week.