Preheat the oven to 350 degrees Fahrenheit and line 2-3 baking sheets with parchment paper.
In a medium bowl, whisk together the 2 cups all-purpose flour, ½ teaspoon salt, and ½ teaspoon baking powder. Set aside.
In another medium bowl, whisk together the ½ cup softened unsalted butter and ⅔ cup granulated sugar for 2-3 minutes until light and fluffy. Add the 2 egg yolks, 2 tablespoons sour cream, 1 ½ tablespoons vanilla extract, and 1 teaspoon lemon extract, and mix until just combined.
Add the flour mixture to the butter mixture and mix until just barely combined.
Split the dough into 2-3 pieces and roll them one at a time on a lightly floured surface until they are ¼ inch thick. Use a Christmas tree cookie cutter (or alternative shapes!) to cut out the cookies.
Press the scraps together and set them aside to rest for about 5 minutes. Then re-roll the scraps and cut more cookies until all the dough has been used.
Place the cookies on the parchment-lined cookie sheets, leaving 1 ½ inches between them.
Bake the cookies for 7-8 minutes, rotating the pan in the oven after 4 minutes to ensure they bake evenly. The edges will be just set and the cookies will be very light in color and should have very minimal coloring underneath them.
Let the cookies cool on the pan for 2 minutes for the shape to set before transferring to a cooling rack. Let the cookies cool completely before frosting.
Cream Cheese Frosting
In the bowl of a stand mixer, whisk the 1 (8-ounce) block softened cream cheese and ½ cup softened unsalted butter together until smooth. Scrape down the bowl and beat again for about 10 seconds to make sure everything is completely incorporated.
Add the 1 teaspoon vanilla extract, ½ teaspoon salt, and 4 cups powdered sugar. Mix on low until the powdered sugar is moistened enough to increase the speed without it making a mess. Beat until smooth.
Color the frosting and decorate the cooled cookies.