Preheat the oven to 350°F (175°C) and line a muffin tin with cupcake liners or lightly grease it.
In a medium bowl, whisk together the flour, baking powder, baking soda, and salt.
In a large bowl, cream the butter and sugar until light and fluffy. Beat in the egg until fully incorporated.
In a separate bowl, whisk together the sour cream, milk, and vanilla extract.
Gradually add the dry ingredients to the butter mixture, alternating with the wet ingredients, and mix just until combined.
Divide the batter evenly among the cupcake liners, filling each about ⅔ full.
Bake for 15-18 minutes or until a toothpick inserted in the center comes out clean.
Let the cupcakes cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
To make the buttercream, beat the butter until smooth. Gradually add the powdered sugar, then mix in the vanilla and milk. Beat until light and fluffy.
Once the cupcakes are cool, frost with the vanilla buttercream using a piping bag or spatula.