Prepare the Dough: In a large bowl, whisk together the flour, sugar, and salt. In a separate small bowl, dissolve the yeast in the warm milk and water. Let stand for 5 minutes, or until foamy.
Combine Wet and Dry Ingredients: Add the melted butter and egg to the yeast mixture. Pour the wet ingredients into the dry ingredients and stir until a shaggy dough forms.
Knead the Dough: Turn the dough out onto a lightly floured surface and knead for 5-7 minutes, or until smooth and elastic. Alternatively, knead using a dough hook attachment on a stand mixer.
First Rise: Place the dough in a lightly oiled bowl, turning to coat. Cover with plastic wrap and let rise in a warm place for 1-1.5 hours, or until doubled in size.
Prepare the Filling: While the dough is rising, prepare the filling by combining the softened butter, brown sugar, and cinnamon in a small bowl. Mix until well combined.
Shape the Bread: Gently punch down the risen dough. Turn it out onto a lightly floured surface and roll it into a 12x18 inch rectangle.
Add Filling: Spread the softened butter mixture evenly over the dough rectangle, leaving a small border on one long edge.
Roll and Seal: Starting from the opposite long edge, tightly roll the dough into a log. Pinch the seam to seal.
Cut and Arrange: Cut the log into 12 even slices. Place the slices cut-side up in a greased 9x13 inch baking pan.
Second Rise: Cover the pan with plastic wrap and let rise in a warm place for 30-45 minutes, or until the slices are puffy.
Bake: Preheat oven to 350F (175C). Bake for 30-35 minutes, or until golden brown.
Cool: Let the bread cool in the pan for 10-15 minutes before inverting onto a wire rack to cool completely.
Prepare Icing: While the bread is cooling, prepare the cream cheese icing. In a large bowl, beat together the softened cream cheese and butter until smooth. Gradually add the powdered sugar, beating until combined. Add milk or cream, one tablespoon at a time, until the desired consistency is reached. Stir in vanilla extract.
Ice and Serve: Once the bread has cooled, drizzle the cream cheese icing over the top. Slice and serve.
Optional Tips: For a richer flavor, use bread flour instead of all-purpose. Add chopped nuts, raisins or chocolate chips to the filling for extra texture and flavor. Instead of cream cheese icing, a simple glaze of powdered sugar and milk can be used. Store the baked bread tightly wrapped at room temperature for up to 3 days.