Preheat oven to 350 F. Line two baking sheets with parchment paper or silicone baking mat.
In a mixing bowl, whisk together flour, baking powder, and salt until combined. Set aside.
In a large bowl, beat together butter and sugars until well-combined.
Beat in egg yolks one at a time, scraping down the sides as necessary.
Mix in vanilla extract, sour cream, and milk until combined. Batter may look curdled at this point.
Add dry ingredients, and mix until just combined.
Scoop dough using a medium cookie scoop (1.5 tablespoons), and drop onto prepared baking sheets, spacing cookies 2-inches apart.
Bake for 10-13 minutes.
Let cool on baking sheet for 10 minutes.
Transfer to a wire rack to finish cooling.
To make the frosting, beat together butter, powdered sugar, 2 tablespoons milk, vanilla, and salt.
Beat until well-combined, adding in additional milk as needed.
Frost cooled cookies with frosting.
Notes
Flour: It's important to properly measure flour when baking. To properly measure flour either weigh it or stir/sift the flour to break it up, lightly spoon into a measuring cup, and level. This will help you avoid packing in the flour.
Brown sugar: I use light brown sugar in this recipe.
Butter: Make sure that the butter is at cool room temperature, not room temperature or melting. The butter should dent a little if poked but shouldn't be warm. If the butter is too warm, the cookies won't hold their shape and will end up flat. Also, I use salted butter, but you can use unsalted if you prefer.
Sour cream: I have used regular and light sour cream in this recipe. I don't recommend using fat-free sour cream.
Milk: Any milk from skim to whole milk will work. For the frosting, using heavy whipping cream will give you a slightly fluffier, creamier frosting.