Beat the butter until it is smooth and creamy (don't skip this step - trust me!).
Add the extract and incorporate.
Add the sugar (slowly, otherwise you will end up with a sugar cloud) and the milk until fully incorporated. Add milk (or water) as necessary until you reach the consistency you want. Don't add too much at a time - it is much easier to add then to subtract. (Hint: I always keep an extra box of sugar just in case I add a little too much liquid).
If you want to add any food dye, wait until the end to end. Note that this adds some liquid so when adding your milk (or water) keep this in mind.
This is where one of my favorite tricks that I learned at a cake decorating class comes in! Once your icing is mixed, scoop it onto a sheet of plastic wrap, spreading it out into a log (as you might do for cookie dough you are freezing). Wrap the plastic wrap around, pushing out the air and then twisting the ends. At this point you can keep the icing in the refrigerator until you are ready to use.
When ready to decorate, simply cut off one of the ends and put the whole log (including the plastic wrap) with the cut side down into a decorating bag already set with your decorating tip. That's it! Now you can work as you please without having to scoop it into the bag, trying not to get it everywhere, and trying to balance it with one hand, while trying to make sure you get all the icing out of the bowl. The icing comes right out without any air pockets! Genius!