Dal makhani takes time. That’s just the nature of it. Whole black lentils and small red beans need an overnight soak and a long simmer before they’ll soften into that thick, creamy texture you’re after. My grandmother made something close to this every few weeks, always overnight on the lowest flame, always with ghee, never substituting. This version uses vegetable stock instead of water and gets the same depth. The spices go in with the onions, the garlic and ginger are grated fine so they disappear into the base, and by the time it’s done you have something that tastes like it required more skill than it actually did.
How to Make Indian Butter Lentils
Soak overnight, no shortcuts
Whole urad dal needs a full overnight soak. Quick-soaking doesn’t get you there. Drain and rinse well before cooking or the cooking liquid gets gummy.
Toast the spices
Toast the whole spices in the ghee before the onions go in. Thirty seconds in hot fat wakes up cardamom and cinnamon in a way that raw spice added later never does. Don’t let them burn.
The finish matters
Stir in a knob of butter right at the end off the heat. It’s what gives the final dish its characteristic richness. Serve with rice or flatbread, and don’t rush the last 20 minutes of uncovered simmering to thicken it up.
Indian Butter Lentils
- Total Time: 125 minutes
- Yield: Serves 6
- Diet: Gluten-Free, Vegetarian
Description
Creamy, subtly spiced lentils simmered to perfection. A hearty and flavorful vegetarian main course.
Ingredients
- 1 cups (237 ml) dried whole black lentils (urad dal)
- 1/3 cup dried small red beans or kidney beans
- 8 cups (1.9 L) low-sodium vegetable stock
- 3 tablespoons ghee (clarified butter)
- 2 large onions, chopped
- 6 large cloves garlic, crushed using a mortar and pestle or grated on a microplane
- 1-inch piece fresh ginger, grated on a microplane
- 1 bay leaf
- 1-inch piece cinnamon stick
- 2 whole pods cardamom, cracked open
- 2 whole cloves
- 2 dried small hot red chilies (more or less to taste)
- 1 1/2 tablespoons garam masala spice mix
- 3/4 teaspoon each ground coriander, cumin, chili powder, and sweet paprika
- 1/4 teaspoon each ground fenugreek and black pepper
- 1 teaspoon coarse kosher salt
- 1 lbs (400 g) can petite diced tomatoes (preferably no-salt-added)
- 1/3 lb tomato paste
- 4 tablespoons (60 g) unsalted butter (preferably grass-fed), cut into 4 pieces
- 1/2 cup heavy cream
Instructions
- 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.
- Add the lentils and beans 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 for 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.
- Once the onion is caramelized, turn the heat to medium and add the garlic and ginger; cook for 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 heat.
- Once the lentils and beans have cooked for 1 hour, stir in the onion/spice mixture, the salt, 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.
- Turn off the heat and stir in the butter and cream.
- Serve with rice or Indian flatbread.
Notes
- For a richer flavor, toast the spices (step 6) in the ghee before adding the onions.
- If you don’t have ghee, substitute with coconut oil or vegetable oil for a milder flavor.
- Store leftover lentils in an airtight container in the refrigerator for up to 4 days.
- Prep Time: 20 minutes
- Cook Time: 105 minutes
- Category: Main Course
- Method: Simmering
- Cuisine: Indian
Nutrition
- Serving Size: 1.5 cups
- Calories: 350
- Sugar: 5
- Sodium: 400
- Fat: 20
- Saturated Fat: 10
- Unsaturated Fat: 8
- Carbohydrates: 50
- Fiber: 15
- Protein: 20
- Cholesterol: 20
Frequently Asked Questions
Do I have to soak the lentils overnight?
Yes. Whole black lentils (urad dal) are dense and cook unevenly without soaking. A minimum of 8 hours in room temperature water ensures they soften properly during the simmer.
Can I use a pressure cooker to speed up the cooking?
You can. After soaking, cook the lentils and beans in a pressure cooker with the stock for about 30 minutes on high pressure. Then proceed with the spiced onion mixture on the stovetop as directed.
What can I use instead of ghee?
Unsalted butter works as a substitute, though it has a lower smoke point. For a dairy-free version, use coconut oil, but the flavor will change noticeably.
