In a large bowl, combine the warm milk and sugar. Sprinkle the yeast over the top and let it sit for 5-10 minutes until foamy.
Stir in the melted butter, vanilla, and salt. Gradually add the flour and mix until a soft dough forms.
Knead the dough for 8-10 minutes until smooth and slightly tacky.
Place the dough in a lightly greased bowl, cover, and let it rise for 1-1½ hours, or until doubled in size.
Roll the dough into a 14×18-inch rectangle.
Spread the softened butter over the dough, then sprinkle evenly with the brown sugar, cinnamon, and salt.
Roll the dough tightly into a log from the long side.
Slice into 12 equal rolls and place them in a greased 9×13-inch baking dish.
Cover and let the rolls rise for another 30-45 minutes.
Meanwhile, preheat the oven to 350°F (175°C).
Bake for 22-28 minutes, or until lightly golden and cooked through.
While the rolls bake, beat together the cream cheese, butter, powdered sugar, vanilla, and enough milk to make a smooth frosting.
Let the cinnamon rolls cool for about 10 minutes before spreading the frosting over the top.
Serve warm and enjoy.