Heat the coconut oil in a large pot over medium heat. Add the onion and cook until softened, about 5 minutes.
Stir in the garlic, ginger, cumin, turmeric, coriander, and cayenne. Cook for 1 minute until fragrant.
Add the red lentils, diced tomatoes, and vegetable broth. Bring to a boil, then reduce heat and simmer for 20 minutes, stirring occasionally, until the lentils are tender.
Stir in the coconut milk and season with salt to taste. Simmer for 5 more minutes.
Serve hot over rice, garnished with fresh cilantro.