In a medium saucepan, heat the milk until scalded--not simmering, but small bubbles around the side of pan. Transfer milk to bowl of a stand mixer.
Add butter, sugar and salt and stir with a large spoon until butter is melted and mixture is between 110 and 120 degrees. Add the yeast and egg, stir until combined.
Place bowl on stand mixer and fit with dough hook. Gradually add flour until the dough pulls away from the sides of the bowl. Knead the dough for 2-3 minutes until smooth. Dough should be soft and sticky, but not so sticky that it sticks to your hands.
Transfer dough to a lightly greased bowl. Cover with a kitchen towel and let rise until doubled, about 1 hour.
Combine brown sugar, flour and cinnamon filling. Roll or pat dough into a 15x12 inch rectangle. Using an offset spatula, spread softened butter evenly across the top. Sprinkle cinnamon and sugar mixture evenly over the butter. Gently pat the topping with hands.
Starting with one long end, roll the dough as tightly as possible, pinching the seam to seal. Using a serrated knife, cut into twelve equal rolls.
Lightly grease a 9x13inch baking dish. Place the rolls in the dish. Cover with a kitchen towel and let the rolls rise until double, about 1 1/2 hours.
Preheat the oven to 350 degrees. Bake the rolls for 18-20 minutes until just slightly golden on top. Let cool for 15 minutes on wire rack.
While rolls are baking, whip butter and cream cheese until smooth. Add milk and vanilla. Mix. Add powdered sugar and cinnamon and whip until light and creamy. Spread the icing over rolls about 15 minutes after baking. Serve immediately, or let cool to room temperature.