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, lemon flavor, lemon zest, 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, lemon zest, and salt.
Beat until well-combined, adding in additional milk as needed.
Frost cooled cookies with frosting.
Notes
All-purpose flour: It's important to properly measure flour. The most accurate way to measure it is to weigh it. If you aren't going to weigh the flour, then sift or stir it to break it up, lightly spoon into the measuring cup, and level. Avoid packing the flour as that will give you dry, dense, or crumbly cookies.
Butter: I use salted butter in this recipe. If you're using unsalted butter, add 1/4 teaspoon to the cookies and to the frosting.
Brown sugar: You can use light brown sugar or dark brown sugar in this recipe. However, I like to use light brown to let more lemon flavor come through.
Sour cream: I recommend using full-fat sour cream. The fat helps to make the cookies moist and tender.
Milk: For fluffier frosting, substitute heavy cream in the frosting.