In the bowl of a stand mixer, combine warm milk, yeast, sugar, salt, butter, and egg. Add in flour. Using a dough hook, turn the mixer on to a low speed. If you don’t have a stand mixer, you’ll need to mix by hand and knead the dough (you can Google how to do this).
Once the flour starts to incorporate into the dough, increase the speed to medium. Add more flour as necessary so that the dough pulls away from the sides of the bowl. The dough mixture should be tacky, but not stick to your hands. It should be soft. Add more or less flour until the dough reaches the desired consistency. The amount of flour you add in bread making is always an approximation and you should go by feel. Knead the dough at least 5-8 minutes.
Transfer the dough to a lightly greased mixing bowl. Cover with a towel and let rise until double in size, about 1 hour.
Lightly grease a baking sheet. Gently punch down the dough and roll into a 12-inch by 18-inch rectangle.
Brush the dough with 1/2 cup melted butter. In a small bowl, combine the brown sugar and cinnamon. Sprinkle on top of the melted butter. Roll up tightly lengthwise so you have one long roll. Use plain dental floss or a serrated, sharp knife to cut dough into 12 one-inch slices.
Place the slices onto a lightly 9×13 pan. Cover and let rise 30 to 45 minutes.
Preheat oven to 350 degrees. Bake the rolls for about 15-20 minutes, or until the rolls are just kissed with brown on top.
While the cinnamon rolls are baking, make the cream cheese glaze by using a hand mixer to whip together cream cheese and butter in a bowl until light and fluffy. Whip in powdered sugar and vanilla extract. Add enough milk to achieve a very thick drizzle-like consistency.
Frost the rolls while still warm. Serve immediately or cool and store. Stays good for 4 to 5 days.