Rinse the red lentils with cold water until the water runs clear.
Heat a large saucepan over medium heat and add vegan butter and avocado oil. Add onion, garlic, ginger, and green chilis. Cook, stirring frequently for 4-5 minutes.
Add all the ground spices: turmeric, cumin, coriander, curry powder, garam masala, red and chili powder. Add a splash of water to prevent them from sticking to the pan. Cook for 1-2 minutes, until fragrant, stirring frequently.
Add 1.5 cups chopped tomatoes (3 small to medium tomatoes) and cook for about 5 minutes, until the tomato juices have mostly evaporated.
Add water and lentils. Increase heat to medium-high until it starts to bubble. Reduce heat to low, cover, and simmer for about 20 minutes. If lentils are not done in 20 minutes, add another 1/2 cup water and cook for about 5 more minutes.
Add coconut milk, salt, and pepper. Cook on medium heat uncovered for another 5 minutes or until you’re at desired texture.
Remove the pan from heat and add spinach, if using. Squeeze lemon juice to taste and garnish with cilantro.