Soak the dal overnight.
Then coarsely grind it, not too pasty and not too coarse.
In a non stick kadhai, start roasting the dal on a slow to medium heat. The dal will stick to the bottom, but you can add a little butter to avoid sticking. Roast it until the raw smell has completely gone. This will take some time, so be patient. While the dal is being roasted, in a pan add sugar, milk and water. Let it boil till the sugar dissolves.
Add more butter while roasting. It takes a lot of butter, but I didn't do too much. If looks on the drier side, add more butter.
After it has roasted well, add your choice of dry fruits. I added choti elachi (cardamom), almonds only.
Add the water, milk and sugar mixture to the roasted dal and stir it. I added the mixture slowly to make sure all the liquid has been absorbed. Add milk powder or maava to the halwa and mix well.
Your halwa is ready to be be served. Serve hot and garnish with dry fruits.