In a large mixing bowl or stand mixer fitted with a dough hook, stir together the warm milk, granulated sugar, and yeast. Let the mixture sit for about 5 minutes until foamy.
Add the flour, brown sugar, melted butter, egg, vanilla extract, salt, and cinnamon. Mix on low speed until the dough starts to come together.
Increase the speed to medium-low and knead for 8 to 10 minutes until the dough becomes smooth, springy, and slightly tacky but not sticky.
Transfer the dough to a lightly greased bowl. Cover and let rise in a warm place until doubled in size, about 1½ to 2 hours.
Lightly grease a 9×13-inch baking dish with butter or baking spray.
Turn the dough onto a floured surface and roll it into a 12×24-inch rectangle.
Spread the softened butter evenly across the dough, leaving a ½-inch border on one long side.
In a small bowl, combine the brown sugar and cinnamon. Sprinkle the mixture evenly over the butter.
Starting from the long side opposite the border, tightly roll the dough into a log.
Slice the log into 12 equal pieces using a sharp serrated knife or plain dental floss.
Arrange the rolls in the prepared baking dish with space between each roll. Cover loosely and let rise for about 1 hour until puffy.
Preheat the oven to 350°F.
Bake the Homemade Cinnamon Rolls for 20 to 25 minutes until lightly golden on top.
While the rolls bake, prepare the glaze by beating together the cream cheese, butter, vanilla, and salt until smooth.
Add the powdered sugar and mix until combined. Stir in milk for a thinner glaze if desired.
Spread one-third of the glaze over the warm rolls straight from the oven. Let cool for 5 minutes, then spread the remaining glaze over the top.
Serve warm and enjoy.