1. Preheat the oven to 175°C and line 2 muffin tins with large cupcake liners.
2. Beat the butter and sugar until well combined. Add the eggs one at a time, beating well after each addition.
3. In a separate bowl, sift the flour, baking powder and salt. Stir the milk and vanilla together. Add the flour and the milk alternately to the butter mixture, starting and ending with the flour and beating well after each addition. Spoon the batter (using an ice cream scoop is best) into the cupcake cups so they are two thirds full and bake for about 18 minutes, until a tester inserted in the centre comes out clean. Cool the cupcakes in the tins.
4. For the frosting, use a stand mixer fitted with the paddle attachment or electric beaters, beat the butter until it is fluffy. Add 2 cups of the icing sugar and first beat on low speed to incorporate, then increase the speed to high, until fluffy. Add the milk and vanilla and beat in. Add the remaining 2 cups of icing sugar and beat in, adding further up to 6 cups until a fluffy and spreadable consistency is achieved (the softness of your butter when you begin is the reason you may have to make this adjustment). Add a little colouring paste if you wish, or separate the white frosting into a few bowls and stir a different colour into each bowl.
5. Pipe or spread the frosting on each cupcake and sprinkle with decorating sugar if you wish. Allow the cupcakes to set for an hour before serving.
The cupcakes should be stored at room temperature and will keep in an airtight container for up to 2 days.