Preheat oven to 350°F (175°C). Line a muffin tin with cupcake liners.
In a medium bowl, whisk together flour, baking powder, and salt.
In a large bowl, cream together butter and sugar until light and fluffy. Beat in eggs one at a time, then stir in vanilla.
Gradually add the dry ingredients to the wet ingredients, alternating with the milk, beginning and ending with the dry ingredients. Beat until just combined.
Fill cupcake liners about 2/3 full.
Bake for 18-20 minutes, or until a wooden skewer inserted into the center comes out clean. Let cool in the tin for 5 minutes before transferring to a wire rack to cool completely.
For the frosting: In a large bowl, cream together butter until light and fluffy. Gradually beat in powdered sugar until smooth. Add milk and vanilla and beat until light and fluffy.