In a wide pan or kadai, heat milk on a sim or low flame for at least about 18 to 20 mins. The milk will reduce and thicken in this period of time. Keep on stirring the milk often as it simmers so that it does not burn from the bottom in the pan.
Grate the khoya or crumble it very well to a fine texture. Set aside. Crush the pistachios and almonds to a semi fine consistency in a dry grinder or in a mortar-pestle. Keep both of them aside.
Crush the green cardamom pods in a mortar-pestle and powder finely. Discard the husks.
Dissolve the rice flour or cornstarch in 3 tablespoons of milk. Mix very well. Set aside.
After 18 to 20 minutes of the milk simmering, add the sugar and stir.
Let the sugar dissolve and after 3 to 4 mins, add the rice flour paste or cornstarch paste.
Keep on stirring after adding the paste, so that no lumps are formed.
The whole mixture has to be lump free, so keep on stirring.
After 4 to 5 mins, when the mixture has thickened, add the khoya (mawa), powdered almonds and pistachios together with the cardamom powder.
Stir very well and just simmer for a minute or two on a low heat. Keep on stirring so that the khoya (mawa) is distributed evenly.
Switch off the heat.
Add rose water or kewra water and crushed saffron. Do a taste test of the mixture and add more sugar if needed.
Let the mixture cool at room temperature.
Then pour the mixture in kulfi moulds or in serving bowls or small glasses or in popsicle moulds.
Freeze the kulfi overnight or for a day. Once the kulfi is well set and frozen, remove it by sliding a butter knife at the edges.
Remove on a glass plate or wooden tray. Slice the kulfi and serve immediately. If frozen in a popsicle mold or tray serve as kulfi popsicles.
To make a vegan kulfi use coconut cream instead of khoya (mawa) and full-fat coconut milk or almond milk in place of dairy. But make sure not to boil the coconut milk or almond milk and only gently heat it. There is no need to reduce and cook the coconut milk or or almond milk for 15 to 20 minutes.
You can add your choice of nuts and flavorings. Skip the saffron if you do not have them.
Simply scale the batch up to make a larger serving for small parties.