In a large bowl, whisk together flour, baking powder, and salt and set aside. Meanwhile, in the bowl of a stand mixer fitted with the paddle attachment, cream together the butter and sugar on medium-high speed until pale and fluffy, about 3 minutes. Beat in eggs and vanilla. Reduce speed to low and gradually add in flour mixture until dough is just combined.
Turn dough out of bowl and divide in half. Form into two disks. Wrap each disk tightly in plastic wrap and refrigerate until firm, at least 1 hour and up to overnight.
Preheat oven to 325 degrees. Remove one disk of dough from refrigerator and allow to temper slightly, 10-15 minutes. On a lightly floured work surface, roll out dough to just under 1/4” thick, adding more flour as needed to prevent dough from sticking. Cut out cookies using desired cutters and transfer to parchment-lined sheet trays. Reroll scraps once, and cut out any additional cookies. Transfer sheet trays to refrigerator and chill until very firm, at least 30 minutes (or to the freezer, for 15 minutes). Repeat with remaining dough.
Bake cookies, rotating sheets halfway through, until edges are just golden, 14-16 minutes. Allow to cool completely on sheet trays set on wire cooling racks before decorating.
In the bowl of a stand mixer fitted with the whisk attachment, combine all ingredients and beat on low speed until smooth and opaque, about 7 minutes. Icing should have the consistency of glue, and ribbons should disappear in 15-second intervals. If icing is too thick, add water 1 teaspoon at a time until proper consistency is reached; if icing is too thin, add additional confectioners sugar 1 tablespoon at a time until proper consistency is reached. If desired, tint icing with gel paste food coloring before transferring to piping bags or plastic squeeze bottles for decorating.