First, make the dough. In a medium to large pot, melt the butter over medium heat. Stir in the milk and vanilla extract and cook until warm. Remove from heat and stir in the sugar. Then sprinkle the yeast over the top of this mixture and give it a few minutes to activate and get foamy.
Now, in a large mixing bowl, add the flour and salt and stir together. Pour in the yeast mixture as well as the eggs and stir together until a dough ball forms.
On a floured surface, turn the dough out and knead for a couple minutes until it comes together and become almost elastic-like.
Lightly flour the bowl and place the dough ball inside. Cover with a clean dish towel and allow to rise in a warm spot for 1-2 hours, until doubled in size.
Toward the end of the rise time make the cinnamon sugar spread. While some like to spread the softened butter and sprinkle the cinnamon sugar over this for the cinnamon roll filling, I will combine the softened butter, sugars, and cinnamon in a small mixing bowl and cream them together in a compound butter.
Roll the dough out into a large rectangle. Spread the cinnamon sugar butter all over the surface of the rectangle.
Roll this up and slice into cinnamon rolls. I start by slicing the roll in half, and then half or 1/3 those pieces. You could also use a measuring stick or ruler if you want to be more exact.
Place the cinnamon rolls in the buttered baking dish. Allow to rest for 20 minutes.
Bake at 350°F for 30 minutes. Allow to partially cool before adding the frosting glaze.
To make the cream cheese frosting, blend together the softened cream cheese, powdered sugar and milk. Spread the glaze over the cinnamon rolls and serve.