In a large mixing bowl, combine the warm milk, yeast, and granulated sugar. Let stand for 5-7 minutes until foamy, indicating the yeast is active.
Add the softened cream cheese, melted butter, and egg to the yeast mixture. Whisk until the cream cheese is mostly incorporated and the mixture is smooth.
Add 3 cups of flour and the salt. Mix with a wooden spoon until a shaggy dough forms, then turn out onto a floured surface. Knead for 6-8 minutes, adding remaining flour gradually, until the dough is smooth, elastic, and just slightly tacky to the touch.
Place the dough in a greased bowl, cover with a damp towel, and let rise in a warm place for 60-90 minutes until doubled in size.
Punch down the dough and turn out onto a lightly floured surface. Roll into a 16x12 inch rectangle. Let rest for 5 minutes.
Spread the softened butter for the filling evenly over the dough, leaving a 1-inch strip clean along one long edge. Mix the brown sugar and cinnamon together, then sprinkle evenly over the butter.
Starting from the long edge opposite the clean strip, roll the dough tightly into a log. Pinch the seam to seal. Using a sharp knife or dental floss, cut into 12 equal rolls.
Place the rolls cut-side up in a greased 9x13 inch baking dish. Cover and let rise for 30-40 minutes until puffy. Meanwhile, preheat the oven to 350°F.
Bake for 25-30 minutes until the tops are golden brown and the internal temperature reaches 190°F. Remove from the oven and let cool for 10 minutes.
While the rolls cool slightly, beat together the frosting ingredients until smooth and creamy. Spread generously over the warm rolls and serve immediately.