Prepare the Dough: In a large bowl, combine warm milk and yeast. Let sit for 5 minutes until foamy. Stir in sugar, melted butter, eggs, and salt. Gradually mix in flour until a soft dough forms.
Knead the Dough: Turn the dough onto a floured surface and knead for 6–8 minutes until smooth and elastic. Place in a greased bowl, cover, and let rise in a warm spot for 1 hour or until doubled in size.
Roll Out the Dough: Punch down the risen dough and roll it into a 16x12-inch rectangle on a floured surface. Spread softened butter evenly over the dough.
Add the Filling: Mix brown sugar and cinnamon, then sprinkle evenly over the buttered dough. Add optional nuts or raisins.
Shape the Rolls: Starting from the long side, roll the dough into a log. Slice into 12 equal rolls using a sharp knife or dental floss for clean cuts.
Second Rise: Arrange rolls in a greased 9x13-inch pan. Cover and let rise for 30–45 minutes, until puffy.
Bake: Preheat oven to 350°F. Bake rolls for 22–25 minutes, until lightly golden on top.
Make the Frosting: Beat cream cheese and butter until creamy. Add powdered sugar, vanilla, and milk until smooth and spreadable.
Frost and Serve: Spread frosting over warm rolls so it melts slightly into the swirls. Serve immediately and enjoy.