In a large mixing bowl beat butter and cream cheese together with an electric mixer until well blended. Add the sugar and beat until light and fluffy. Add the egg, vanilla and almond extract and beat until combined.
In a small bowl whisk together 2 ¾ cups flour, baking powder and salt. Add half the flour mixture to the butter and sugar and blend on low until incorporated. Add the final half of the flour mixture and beat until a soft dough forms. Add up to 1/4 cup additional flour if needed, 1-tablespoon at a time until the dough is soft and no longer sticky. For best results, do not exceed a total of 3 cups of flour.
Gather the dough into a ball and cut in half. Press one half of the dough into a thick round and wrap in a large piece of plastic wrap. Repeat with the remaining half of the dough. Refrigerate the two discs for at least 8 hours, or up to two days.
When ready to bake, remove one disc of cookie dough from the refrigerator and allow it rest at room temperature for 15-20 minutes for easier rolling. Preheat oven to 350°F. Line 2 baking sheets with parchment paper and set aside.
Roll out the dough on a well floured, clean work surface to ¼-inch thick. Using a cookie cutter, cut the dough into the desired shapes and place the cookies 2-inches apart on a cool baking pan. Repeat until the pan is full. Bake for 8 to 12 minutes (depending on the size and thickness of the cookies) or until very lightly browned around the edges and bottom. For best results, do not over-bake! Cool on the pan for 3-4 minutes then remove to a wire rack to cool completely.
Frost the cookies with your favorite glaze, royal icing or buttercream.