Dal makhani is a slow-cooked, creamy black lentil curry from Punjab that's rich, buttery, and deeply satisfying. This high protein vegetarian dish is a family favorite that pairs perfectly with naan or rice.
Rinse black lentils and kidney beans thoroughly, then soak them in water overnight or at least 8 hours for optimal texture.
Drain and add lentils and beans to a large pot with 6 cups water. Bring to a boil, then reduce to low and simmer, covered, for 60 minutes, stirring occasionally.
Meanwhile, heat 2 tbsp butter in a skillet over medium heat. Add onion and cook until lightly golden, about 7 minutes. Stir in ginger and garlic; sauté for 2 more minutes.
Add tomato, cumin, coriander, garam masala, and chili powder. Cook, stirring frequently, until the tomato mixture breaks down and the spices bloom, about 6 minutes.
Transfer the tomato-onion masala to the pot with lentils, add salt, and simmer uncovered on low for 45 minutes, stirring every 10 minutes for creaminess and thickened consistency.
Stir in heavy cream and the remaining 1 tbsp butter; continue simmering for 15 minutes over low heat, stirring gently to prevent scorching. Taste and adjust seasoning if needed, then serve hot.