Soak urad beans and kidney beans in enough water such that they are well immersed. Leave this for 7 to 8 hours or overnight such that the beans swell up´well.
Transfer the soaked beans to a pressure cooker along with 3 cups water and all the other ingredients given under 'To Pressure Cook'. Pressure cook this up to 5 or 6 whistles. The beans should have been cooked very well, so that they are soft when pressed. Once done, set this aside for the pressure to release.
Now heat a deep heavy bottomed pan / kadai, add butter and let it melt. Next, add cumin seeds. Once they splutter, add finely chopped ginger and garlic until they are brown. Be careful not to burn them. Now add chopped onions and saute until they turn translucent.
Once the onions are cooked, add coriander powder (dhania powder) and red chilly powder and saute for a few minutes until the raw smell goes. Now add tomato puree, stir well and let this cook until it gets thick and starts to release fat from the butter.
Meanwhile, gently mash the cooked beans (not completely) and pour all the ingredients in the pressure cooker to the pan. Keep the heat in LOW. Mix everything thoroughly and add some more salt as per taste. If you are using salted butter, mind the quantity of extra salt.
Add some water if dal makhani is too thick. Add garam masala and crushed kasuri methi and stir well. Let this simmer in LOW HEAT for about 40 minutes. Make sure to stir it often so that it does not get stuck to the bottom of the pan. Gradually dal makhani starts to thicken and reduce in quantity.
Once it has been simmered well, pour milk and stir well. Simmer the mixture again for about 10 minutes. If you find your dal makhani to be too thick even after adding milk, you can add some water and simmer for few more minutes. Do not use excess amount of milk as this will decrease the flavour of dal makhani.
Garnish with cashew paste or fresh cream (if you wish to) and coriander leaves. This step is optional though.
Serve with any flatbread of your choice like roti, naan, kulcha, phulka or with rice and enjoy.