Preheat the oven to 350°F. Line an 8×8 or 9×9 baking pan with parchment paper or lightly spray with cooking spray.
In a medium mixing bowl, combine first 9 ingredients. Once evenly incorporated, fold in remaining 3 ingredients. Be sure not to over-mix the flour by leaving small pockets of flour in the batter (this is the secret step that ensures the perfect brownie texture).
Pour the batter into the prepared baking pan and bake for 38-45 minutes or until a toothpick comes out without batter sticking to it and the center is set.
Remove from oven and let brownies cool completely (or at east 10-15 minutes).
Once cooled, lift the brownies out of the pan using the parchment paper overhang and place on a cutting board. Slice into squares and frost, if desired.
Place butter and cream cheese in a medium bowl and cream with a hand mixer until fluffy.
Add powdered sugar and vanilla extract.
Thin to desired consistency with cream. Serve with Gingerbread Brownies.