Rinse and soak the lentils for a minimum of 4 hours, overnight preferred. Drain and rinse again before cooking.
Heat the oil in a large pot over medium heat. Add the diced onion and sauté until translucent, about 3–4 minutes.
Stir in the garlic and ginger, cooking for 1 minute until fragrant.
Mix in the spices and toast for about 1 minute to release their aromas.
Add the coconut milk, tomato puree, and soaked lentils. Stir well, cover, and cook for 20–25 minutes, stirring occasionally, until the lentils are tender but not mushy.
Taste and adjust seasoning to your liking. Garnish with fresh cilantro, if desired, and serve with rice, naan, or your preferred side.