Preheat the oven to 350°F. Butter, flour, and line two 8-inch cake pans with parchment circles.
In a medium bowl whisk together the flour, baking powder, baking soda, and salt.
In a large bowl with an electric mixer, beat the butter on high speed until smooth and creamy, about 1 minute. Add the sugar and beat on high speed for 3 to 4 minutes, until light and fluffy. Scrape down the bowl as needed. Add the eggs, egg yolks, and the vanilla one at a time, beating well between additions until combined. Beat in the sour cream until combined.
With the mixer on low speed, add the flour mixture in three additions alternating with the whole milk, beginning and ending with the flour, mixing just until combined. Do not overmix.
Divide the batter evenly among the prepared cake pans and bake for about 25 to 30 minutes, or until a toothpick comes out clean. Let cool for 20 minutes in pans before turning out onto a cooling rack.
Assemble the cake:
Place one cake layer on a cake turntable or cake stand. Spread about a third of the frosting in an even layer all over, pushing it out over the edge just slightly. Place the other cake layer upside-down onto the frosting so that the top of the cake is nice and flat. With an offset spatula, spread the remaining frosting evenly all over the cake, smoothing the edges. Serve or cover and store in the fridge for up to 2 days. Let come to room temperature for an hour before serving.
This recipe makes 24 cupcakes. Bake for 17 to 20 minutes, or until lightly golden brown at the edges and a toothpick comes out clean.