Soak chana dal in water for 4 – 6 hours. Drain. Cook the dal using as little water as possible. Cook off any excess water in the dal and grind the cooked dal to a fine paste.
Heat ghee in a heavy bottomed frying pan. Fry the cashewnuts and/or almonds. Drain and set aside. Add the chana dal paste, khoa, sugar, and jaggery. Stir till sugar and jaggery mixes well. If the mixture is too dry, sprinkle some milk and continue to stir for 10 – 15 minutes. When the halwa leaves the sides of the pan, it is done.
Add cardamom powder and mix well. Press halwa into a rimmed plate greased with ghee. Sprinkle with chopped nuts. Let cool slightly. You can eat the halwa warm or at room temperature.