In a small saucepan, combine milk, sugar, salt, and butter.
Heat gently, stirring until the butter melts and the sugar dissolves.
Allow the mixture to cool until it's lukewarm (below 110°F).
If using active dry yeast, dissolve it in warm water in a pre-warmed mixer bowl and let it sit for 10 minutes.
Add the lukewarm milk mixture and the yeast mixture to 4 ½ cups of flour.
Using the dough hook attachment, mix on speed 2 for one minute.
Continue mixing on speed 2, gradually adding the remaining flour (½ cup at a time), until the dough clings to the hook and the bowl sides are clean.
Knead for an additional 4 minutes on speed 2 until the dough is smooth and elastic.
The dough should feel slightly sticky.
Place the dough in a greased bowl, turning it to coat the top.
Cover and let rise in a warm, draft-free space until it doubles in size (about an hour).
Punch the dough down and divide it into two portions.
Shape each into a loaf and place them in greased 8 ½ x 4 ½ x 2 ½ loaf pans.
Cover and let rise again until doubled, for about an hour.
Bake at 400°F for 30 minutes, then remove the loaves from the pans and cool on wire racks.