Soak the black gram, kidney beans and bengal gram lentils overnight. Drain the water.
Pour 4 cups of water and salt and pressure cook on low heat. (4-5 whistles)
Add milk and cook till the milk is absorbed completely.
Add the tomato puree, cumin powder, chilli powder and garam masala.
Mix well and continue cooking on low heat for about 30 minutes or till the beans are cooked through and tender.
Add butter and cook for another 10 minutes.
Add cream and mix well. Switch off heat.
For the Smoky Flavour (Optional)
To give a smoky flavour to this dish, take a heat proof bowl and place on the cooked gravy.
Take a charcoal and heat on flame till red hot.
Carefully place the coal inside the heatproof bowl.
Pour a teaspoon of clarified butter/Ghee and immediately cover the dal makhani container with a lid or foil, making sure it is well sealed.
Leave it for about 5-10 minutes.
Remove the lid/foil.
Garnish with few drops of cream and serve hot.