Heat oil and butter in a saucepan over medium heat. Add cumin seeds and toast gently, being careful not to let them burn.
Add onions, garlic, ginger, and cilantro stems. Sauté until soft and fragrant.
Stir in turmeric, garam masala, and chili powder. Mix well.
Add red lentils, canned tomatoes, coconut milk, and water. Stir everything together and bring to a gentle simmer.
Let it cook for about 20 minutes, or until the lentils are soft and creamy. Stir occasionally to prevent sticking.
Finish with lime juice, chopped cilantro, salt to taste, and a touch of liquid smoke if using.