Preheat your oven to 350°F (175°C) and line a cupcake pan with liners.
In a medium bowl, whisk together the flour, baking powder, and salt. Set aside.
In a large bowl, beat the butter and sugar together until light and fluffy. Add the eggs one at a time, beating well after each addition. Mix in the vanilla extract.
Gradually add the dry ingredients to the wet ingredients, alternating with the milk. Begin and end with the dry ingredients. Mix until just combined.
Divide the batter evenly among the cupcake liners, filling each about ⅔ full. Bake for 18-20 minutes, or until a toothpick inserted into the center comes out clean. Allow cupcakes to cool completely before frosting.
For the frosting, beat the butter until creamy. Gradually add the powdered sugar, beating until smooth. Add the vanilla extract and heavy cream, and beat until light and fluffy. If desired, add food coloring and mix until combined.
Frost the cooled cupcakes and decorate as desired.