Combine milk, butter, sugar and salt in a microwavable bowl (or in a pot). Heat until warm. Mix. Add eggs slowly to the mixture.
Using a mixer with a paddle attachment, mix 4.5 cups of flour with yeast. Then add the liquid ingredients. Mix on low, stopping to scrape down the sides of the bowl. Mix until everything is incorporated. This should take about 5 minutes.
Switch to the dough paddle. You may need to add the extra flour. The dough should not be sticking to the sides of the bowl. Using the dough hook, knead the dough for about 5 minutes. Dough should look smooth and spring back if you press it with your finger.
Lightly grease a large bowl and place dough in bowl. Cover with plastic wrap or a towel and leave in a warm place to double in size. (About an hour).When dough has doubled in size, roll into a large rectangle. Spread dough with butter or oil. Sprinkle with brown sugar and then with cinnamon (be generous!)
Starting with the shorter size, roll up the dough into a roll. Cut the cylinder into 12 rolls. Place in a pan lined with baking parchment. Allow it to rise for about an hour.
In a preheated oven 180/350, bake for 10-15 minutes (no more!) until lightly browned on top.
When cool, mix the icing (frosting) and pour all over the cinnamon buns. You can omit the cream cheese and just make a thinner icing if preferred.