Make the cupcakes: Preheat the oven to 350 degrees F. Line a 12-cup muffin pan with paper liners. Whisk the flour, baking powder and salt in a medium bowl.
Beat the butter in a large bowl with a mixer on medium-high speed until smooth, about 1 minute. Add the granulated sugar and beat until creamy, about 4 minutes. Beat in the eggs, one at a time, then the vanilla. Reduce the speed to low and beat in the flour mixture in three batches, alternating with the milk. Beat until just combined.
Divide the batter among the prepared muffin cups. Bake until the tops spring back when pressed, 20 to 25 minutes. Transfer to a rack and let cool 5 minutes in the pan, then remove to the rack to cool completely.
Make the frosting: Beat the butter, confectioners' sugar and salt in a bowl with a mixer on medium speed until just combined. Increase the mixer speed to medium high, add the vanilla and beat until creamy, 3 minutes. Beat in the milk until fluffy, about 1 minute.
Spread the frosting on the cupcakes. Decorate as desired.