In a large mixer bowl, combine warm milk and 1/4 cup sugar. Add yeast and let sit for 5 minutes to activate.
Add cooled butter, eggs, and flour and begin mixing on low speed with a dough hook for 3 minutes or with a spoon for 5 minutes, until all ingredients are uniformly mixed.
Add salt and increase mixing speed to medium for 4 minutes or with a spoon for 6 - 8 minutes. This is a very wet dough.
Transfer dough to a clean bowl coated lightly with oil. Turn dough over to evenly coat with oil, cover with plastic wrap and refrigerate overnight.
Set aside a 10-inch nonstick bundt pan. In a small bowl, combine cinnamon and remaining 1/2 cup sugar.
Remove dough from the refrigerator and divide into two equal pieces. Roll each piece of dough out into a 1/2-inch thick rope. Cut or pinch off portions of dough 1/2-inch long and roll into individual balls.
Toss dough balls in cinnamon-sugar mixture and place evenly in bundt pan. When all dough as been added to the pan, cover and let rise in a warm place until doubled in size, about 45 minutes.
Meanwhile, preheat oven to 350°F and prepare the syrup: in a medium pot, melt butter and sugar, whisking often until evenly combined. Remove from heat, add vanilla extract, and let cool.
When the dough has risen, uncover and pour syrup over dough. Bake until puffy and set, 30 - 40 minutes.
Let the monkey bread cool in the pan for 15 minutes. While cooling, prepare the icing: mix together soft cream cheese and butter, then add powdered sugar and vanilla extract and mix until evenly combined. Adjust consistency with milk. Set aside.
Unmold monkey bread onto a serving platter and let cool an additional 20 minutes. Decorate with icing then serve by cutting slices or letting guests pull off individual pieces of bread.
For a lighter texture, use half whole wheat pastry flour and half all-purpose or unbleached pastry flour.