Wash & soak whole 'Urad dal' & 'Rajma overnight or for a minimum of 8 hours.
Drain, wash once again and transfer the lentils & beans in a pressure cooker. Add around 3 cups of water. Pressure cook for at least 20 whistles.
Once the cooker cools, check if the lentils and beans are well cooked and soft (consistency). If it's not, then add another 1/2 cup water and pressure cook for another 5 whistles.
Once the lentils & beans are well cooked, keep them aside.
In a large pot, heat butter/ ghee. Add all the whole spices: cumin, bay leaves, cardamom, cinnamon & cloves. Cook for 1 minute.
Now add the chopped onions and cook until they turn pink and translucent.
Next add ginger garlic paste and cook until the raw aroma disappears or another 1 minute.
Add red chili powder, green chiles (chopped) & nutmeg. Cook for another 30 seconds.
Add the chopped tomatoes or tomato paste. If using fresh tomatoes, cook until the water disappears, tomatoes become pulpy and you see oil around the edges. In case you're using tomato paste, add water and bring the mixture to a boil.
Now add the pressure cooked lentils & rajma to the pot along with some water.
While stirring, on a medium flame, bring it to a boil. Now add salt and simmer the heat.
Stirring in between let the 'dal' boil keeping the heat on simmer. Ensure lentils don't stick to the base of the pot. You can add some more water, if you feel the consistency is too thick.
In this way, let the dal boil for 30 minutes. Maintain the consistency: shouldn't be too thick or too thin.
Just before removing from heat, add the cream/ milk and give it a quick stir. Bring it to boil.
Lastly add crushed dried fenugreek leaves. Stir one last time and remove from heat.
Transfer to a serving dish and garnish with cilantro.
Enjoy with Naan, 'rotis', 'parathas' or plain white steamed rice.