Prepare the Dough: Warm the milk and butter in a small saucepan over low heat until the butter melts and the mixture reaches 110°F (lukewarm). Pour the mixture into a mixing bowl, sprinkle the yeast on top, and let it sit for 5 minutes until frothy. Add sugar, egg, salt, and vanilla extract. Mix well. Gradually add the flour, 1 cup at a time, until a soft dough forms. Knead for 5–7 minutes until smooth and elastic. Cover and let rise for 15 minutes.
Make the Filling: In a small bowl, mix softened butter, brown sugar, granulated sugar, cinnamon, and vanilla extract until combined.
Assemble the Rolls: Roll the dough into a 12x18-inch rectangle on a floured surface. Spread the cinnamon-sugar filling evenly over the dough. Roll the dough tightly from the long side to create a log. Cut into 12 even slices.
Bake the Rolls: Arrange the slices in a greased 9x13-inch baking dish. Cover and let rise for 15 minutes. Preheat the oven to 350°F. Bake the rolls for 20–25 minutes or until golden brown.
Prepare the Icing: Beat the cream cheese, powdered sugar, and vanilla extract. Add milk 1 tablespoon at a time until desired consistency is reached.
Serve and Enjoy: Spread the icing over warm cinnamon rolls and serve immediately.