Rinse the dried red lentils thoroughly under cold running water in a fine-mesh strainer until the water runs mostly clear.
Dice the onion into small pieces. Mince the garlic cloves finely. Peel and grate the fresh ginger.
Place a large pot over medium heat. Add the oil and let it warm for about 30 seconds.
Add the diced onion and cook for about 5 minutes until soft and translucent.
Add the minced garlic, grated ginger, and red pepper flakes. Cook for 1 minute until fragrant.
Add the garam masala, turmeric, cumin, coriander, and cinnamon. Stir for 1 minute.
Pour in the rinsed lentils, canned tomatoes, coconut milk, and vegetable broth. Stir well.
Season with salt and black pepper. Bring to a boil, then reduce heat to medium-low and partially cover.
Simmer for 15-20 minutes, stirring occasionally, until lentils are soft.
Stir in lemon juice and fresh spinach until wilted. Adjust seasoning as needed.
Serve immediately over rice or with naan, garnished with cilantro and yogurt.
