Preheat the oven to 350 degrees. Prepare your 9x13 pan by spraying with pan release or buttering. Set it aside.
Mix the flour, spices, baking powder, and salt in a small bowl. Set this aside.
In another medium-sized bowl, add the molasses and water and mix them. Add the melted butter and brown sugar to the molasses mixture. Next, add the eggs and vanilla to this. Mix well, you don't want scrambled eggs in your cake.
Last is the flour mixture. When you mix this, be sure not to overmix. It is easy to create a tough cake by overmixing the batter. Pour the batter into your prepared cake pan.
Bake for 30-45 minutes. Test the inside with a toothpick. If you are baking with whole wheat flour, you want to underbake it just slightly.
Remove it from the oven and let it cool on a cooling rack. While it is cooling, mix all ingredients together in a medium-sized bowl for the icing. I like to mix this with a hand mixer, but you can also do it by hand. Add milk to reach the consistency you like. I prefer my icing a little thicker, but you can choose.
Once the cake has cooled completely, spread the icing over the cake. It can be served immediately.