Microwave milk for 2-3 minutes until it’s bubbling. Pour the milk into the bowl of an electric stand mixer fitted with paddle attachment.
Add the butter, sugar and salt. Mix on low speed until the butter is melted. Let the mixture cool until warm, but not hot. Add the yeast and eggs and mix until combined.
Gradually add about half of the flour. Switch to dough hook attachment and add the rest until the dough clears the sides of the bowl. The dough should be soft and slightly sticky. Knead for 2-3 minutes.
Transfer the dough to a large bowl sprayed with nonstick spray. I like to spray a fine mist on the top of the dough too, so I can cover the bowl with plastic wrap. Let rise until doubled, about one hour.
Roll the dough into a large rectangle, (horizontal in relation to your body) about 18×12 inches. Spread softened butter over the dough.
Stir together the brown sugar and cinnamon and sprinkle over the dough. Pat it in slightly with the palms of your hands.
Starting with a long end, roll up the dough as tightly as possible, pinching the seam lightly to seal.
Using a serrated knife, cut a shallow slit in the roll at the half point, then cut a slit in the center of each half so you’ve got 4 equal portions, and cut slits for 3 cinnamon rolls in each of those portions, until you’ve got 12 cinnamon rolls. I like to do shallow slits to make sure they’re even before I cut all the way through. Cut with a gentle sawing motion.
Place the rolls evenly spaced on a large, parchment-lined, rimmed baking sheet. Cover and let rise until double.
Preheat the oven to 350 degrees F. Bake the cinnamon rolls for 18-22 minutes until light golden brown. Allow rolls to cool for about 10 minutes before frosting.
For the icing, mix together powdered sugar, melted butter, vanilla, milk, and cream cheese until smooth. You can add a bit more milk, as needed for consistency. Drizzle over warm rolls. It may seem like you won't have enough, but it turns out to be the perfect amount.