Add the black lentils and red beans to a large bowl; fill the bowl with room temperature water and soak overnight. Rinse and drain the next day.
The Day Of:
The next day, rinse and drain the soaked lentils and beans. Add them to a 5-quart pot along with the vegetable stock. Bring up to a boil, then cover the pot, turn heat down to simmer, and cook 1 hour, stirring occasionally.
Meanwhile, heat the ghee in a large skillet over medium to medium-high heat. Add the onion and cook until soft and deep caramel in color, about 15 minutes, stirring occasionally. You can add a splash of water or turn the heat down at any point if the onions start to get too dark or the pan starts to get too hot.
Once the onion is caramelized, turn the heat to medium (if it wasn’t there already) and add the garlic and ginger; cook 1 minute, stirring constantly.
Add the bay leaf, cinnamon stick, cardamom pods, cloves, red chilies, garam masala, coriander, cumin, chili powder, sweet paprika, fenugreek, and black pepper. Cook until fragrant, about 20 seconds, stirring constantly. Remove from the heat.
Once the lentils and beans have cooked for 1 hour, stir in the onion/spice mixture, the diced tomatoes, and the tomato paste.
Gently simmer (uncovered) until the sauce is somewhat thickened and the lentils and beans are fully tender, about 45 minutes to 1 hour, stirring frequently. (Of course you can cover the pot if the sauce gets too thick before the lentils and beans are already tender.)
Turn off the heat and stir in the butter and cream.
Serve topped with any garnishes you like along with rice or Indian bread.
Notes
Serving Suggestions: This dish goes well with Indian bread, such as Naan, prepared basmati rice, or cauliflower rice to keep the carbs down.
Nutritional Information: Information for this recipe was calculated without the garnish ideas or serving suggestions.
Storage: You can store this recipe for up to 4 days in the fridge or up to 3 months in the freezer.