In a large bowl whisk dry ingredients together: flour, salt, spices and baking soda.
In another bowl cream butter with sugar. Add the egg and molasses and mix well.
Incorporate dry ingredients to the butter mixture and stir until the dough comes together. Divide the dough in two disks and cover each with plastic wrap and refrigerate for at least 1 hour up to 3 days.
Roll the dough between two layers of plastic wrap, or between two layers of parchment paper until 1/8 inch (2-3 mm) thick. If you want them crispy roll the dough very thin. If you want them softer roll it out thicker.
Preheat oven to 350°F(180°C). Line two baking sheets with parchment paper.
Cut the dough into desired shapes using the cookie cutters. Re-roll the remaining dough and cut more shapes. I use a fork to remove the dough between the cookies. Place the cookies onto the prepared baking sheets, leaving a little space between them.
Bake for 7 to 10 minutes (depending on the cookie size). Allow to cool on the baking sheet for 2 minutes, then transfer to a wire rack to cool completely.
To make the icing simply combine powdered sugar with milk or lemon juice. Spoon the icing into the piping bag and decorate the gingerbread cookies as desired. Allow to set.