To make the dough, in a large mixing bowl, whisk together the flour, salt, baking powder, baking soda, and spices; set aside.
Using a hand or stand-mixer, blend the butter and sugar on medium-high speed until light and fluffy, about 2 minutes. Mix in the molasses and egg until combined. Add dry ingredients and mix on low speed just until incorporated.
Turn the dough out onto a work surface and divide into two roughly equal portions. Shape each portion into a ball, flatten slightly into a disc, and wrap tightly in plastic wrap. (This makes it much easier to roll out the dough later!)
Transfer discs to the fridge and chill for at least one hour, or overnight.
When ready to bake, preheat the oven to 350 degrees F (180 C), and line baking sheets with parchment paper or silicone mats.
Working with one dough disc at a time, and leaving the other in the fridge, roll the dough out on a well-floured work surface to about ¼-inch thickness. Cut into desired shapes with cookie cutters. (*See tips for this below!)
Arrange cookie shapes on prepared baking sheets about 2 inches apart. Bake for 10 minutes, rotating pans halfway through baking. Remove from oven and let cool on the baking sheets for 10 minutes, then transfer to a wire rack to cool completely.
To make the icing, whisk all ingredients together in a medium bowl. Add water a few drops at a time to reach the desired consistency; to hold its shape on the cookies, the icing should be fairly thick. As a test, if you drizzle a bit with the whisk, the ribbon of icing will hold for a few seconds before melting back into the icing. If the icing becomes too thin, simply add more powdered sugar to stiffen it back up. If desired, add liquid or gel food coloring.
Decorate cooled cookies as desired. The cookies can be left uncovered for 24 hours while the icing sets and hardens, then stacked and stored in an airtight container at room temperature. Cookies will keep this way for 4-5 days.