Preheat the oven to 350F/180C. Spray a 9x5 inch loaf pan with non-stick spray. Set aside.
In a large bowl, whisk the flour, baking powder, baking soda, ginger, cinnamon, nutmeg, and salt together until combined. Set aside.
Mix together the eggs, sugar, oil, cream cheese, and buttermilk. Pour the wet ingredients into the dry ingredients and mix until just combined. Do not over-mix.
Pour the batter into the prepared loaf pan. Bake for 50 - 60 minutes, or until a toothpick inserted into the centre comes out clean with only a few small moist crumbs.
Allow to cool completely in the pan on a wire rack before removing and frosting.
For the Frosting
In a medium bowl, cream together the butter, cream cheese, icing sugar, and vanilla until smooth. Spread evenly over the gingerbread loaf, then slice and serve.
Notes
*If you can't get hold of buttermilk, add 1 tablespoon of lemon juice or white vinegar, and 240ml (1 cup) of milk to a measuring jug. Leave for 5 minutes, then it's ready to use!