In a small saucepan, combine the milk, instant yeast, and granulated sugar. Heat gently until warm but not boiling. Remove from heat and set aside.
In a large mixing bowl, mix the all-purpose flour and salt. Add the egg and pour in the warm milk mixture. Stir until a soft dough begins to form.
Transfer the dough onto a lightly floured surface and knead for about 5 minutes, or until it becomes smooth and elastic.
Place the dough in a greased bowl, cover it with a clean kitchen towel, and let it rise in a warm place for about 1 hour, or until it doubles in size.
While the dough rises, prepare the filling by mixing the melted butter, brown sugar, and ground cinnamon in a small bowl until well combined.
Once the dough has risen, punch it down to release any air bubbles and roll it out on a floured surface into a rectangle about 1/4 inch thick.
Spread the cinnamon filling evenly over the dough, leaving a small border around the edges.
Starting from one of the longer sides, tightly roll the dough into a log. Pinch the seam to seal the roll.
Cut the log into 9 or 12 equal-sized pieces using a sharp knife.
Place the rolls in a greased baking dish, spacing them slightly apart. Cover them with a kitchen towel and let them rise again for about 30 minutes.
Preheat your oven to 375°F (190°C).
Bake the cinnamon rolls for 15–20 minutes, or until golden brown and fully cooked.
While the rolls bake, prepare the glaze by whisking together the powdered sugar, cream cheese, and vanilla extract in a small bowl until smooth.
Remove the cinnamon rolls from the oven and let them cool for a few minutes.
Drizzle the glaze generously over the warm rolls.