In a small saucepan over medium heat, heat milk until it bubbles. Remove from heat and mix in butter until melted. Let cool until lukewarm.
In a large mixing bowl, combine 2 1/4 cup of the flour, yeast, sugar, and salt. Whisk to combine. Add water, egg, vanilla, and milk mixture and beat with an electric mixer.
Add remaining flour 1/2 cup at a time, using a wooden spoon to stir well after each addition.
When dough pulls together, turn out onto a lightly floured surface and knead until smooth, about 5 minutes. Dough will spring back when lightly pressed.
Cover with a damp cloth and let rest on counter 10 minutes.
Roll dough out into a 9×12 inch rectangle on a lightly floured surface. Spread butter over the dough, then stir together cinnamon and brown sugar and sprinkle evenly over the top.
Starting with a long edge, roll dough up in a tight spiral and pinch seam to seal. Using a serrated knife, cut into 12 rolls.
Place rolls in a 9×13-inch baking dish. Cover with plastic wrap and let rise in a warm place until doubled in size, about 30 minutes.
Bake in preheated oven until golden, 17-20 minutes. Let cool 10 minutes before frosting.
While rolls cool, beat together the 2 tablespoons butter and cream cheese with an electric mixer until smooth. Add vanilla and powdered sugar and beat until creamy but spreadable.