In a small bowl, mix the cornstarch with 1/2 cup of the milk to make a smooth slurry. Set aside.
In a medium saucepan, heat the remaining 3 1/2 cups of milk over medium heat until it begins to steam, but not boil.
Stir in the granulated sugar and ground cardamom until the sugar is completely dissolved.
Slowly pour the cornstarch slurry into the hot milk while continuously stirring to prevent lumps from forming. Continue to cook, stirring constantly, until the mixture thickens, about 5-7 minutes. The mixture should coat the back of a spoon.
If using, stir in the finely ground almonds or pistachios and the rose water. Mix well.
Pour the thickened mixture into individual serving bowls or a large serving dish. Allow it to cool to room temperature, then refrigerate for at least 2 hours, or until set.
Before serving, sprinkle ground cinnamon and chopped pistachios or almonds on top.
Enjoy your meal!