In a small bowl, combine warm milk, granulated sugar, and yeast. Let sit for 5-10 minutes until foamy.
In a large bowl, whisk together flour and salt. Make a well in the center and pour in the yeast mixture, melted butter, and egg. Mix until a shaggy dough forms.
Turn dough onto a lightly floured surface and knead for 8-10 minutes until smooth and elastic. Place in a greased bowl, cover, and let rise in a warm place for 1-1.5 hours, or until doubled in size.
Filling and Rolling
Punch down the risen dough and turn it onto a lightly floured surface. Roll into a 12x18 inch rectangle.
Spread the softened butter evenly over the dough, leaving a small border on one long side. Sprinkle with brown sugar and cinnamon.
Starting from the long side with the filling, tightly roll up the dough. Pinch the seam to seal.
Cut the roll into 12 equal slices. Place the slices in a greased 9x13 inch baking dish.
Cover the dish and let the rolls rise again for 30-45 minutes.
Baking and Frosting
Preheat oven to 375°F (190°C). Bake for 18-20 minutes, or until golden brown.
While the rolls are baking, prepare the frosting: Beat cream cheese and butter until smooth. Add vanilla extract and powdered sugar, beating until well combined and fluffy.
Let the cinnamon rolls cool slightly in the dish before spreading the frosting over them.
Notes
Best served warm. You can add a pinch of nutmeg to the filling for extra flavor.