Melt the chocolate, sugar, and milk in a small saucepan over medium low heat, until the sugar dissolves (rub the mixture between your fingers to make sure the sugar is no longer grainy). Remove from the heat before it boils, and set aside.
Whisk the egg yolks in a small bowl. Add a small amount of the chocolate mixture and stir into the yolks to temper them. Slowly add more chocolate, stirring continuously, until half of it is mixed into the eggs. Add the egg/ chocolate mixture back into the chocolate and mix until everything is combined.
Pour into a mixing bowl (if you have a stand mixer, use that bowl), and stir in the butter by hand. Allow to cool at room temperature, undisturbed, until completely cool.
Beat the icing with an electric mixer until it is smooth and shiny. It will become slightly lighter is color and stream down off the beater in ribbons. This will take about five minutes on high using a stand mixer, and ten with a hand mixer.