Preheat the oven to 350 degrees F. Spray an 8x8-inch pan with non-stick baking spray.
In a medium bowl, whisk together the flour, baking powder, salt and spices. Set aside.
In another medium bowl, mix the pumpkin, sour cream and vanilla and set aside.
In a large bowl, cream together the butter and sugar with an electric mixer on high speed for a couple minutes until light and fluffy.
Beat in the eggs, one at a time, mixing on medium for about 20 seconds after each egg.
Add half of the dry ingredients to the batter and mix on medium speed for only about 15-20 seconds.
Add the liquid ingredients and mix on medium speed for only about 15-20 seconds.
Add the last half of the dry ingredients and mix on medium speed for only about 15-20 seconds.
Scrape down the sides and bottom of the bowl and mix again only for about 10 seconds.
Pour the batter into the prepared pan and spread evenly.
Sprinkle the streusel topping evenly over the batter.
Bake for approximately 55 - 60 minutes (ovens vary), or until a toothpick inserted in the center comes out clean or with a few moist crumbs on it but no raw batter. This cake takes a while to bake because of the thick texture and the moisture content. It will begin to puff up in the middle towards the end of the baking time.
Remove from the oven and cool in the pan on a wire rack for at least 20 minutes before adding the glaze.
Note: The cake itself is not a super sweet cake and that’s because the streusel on top is made from sugar, so everything is designed to go together. If you do not plan to make the streusel and the glaze, you may want to add in an additional ½ cup sugar to the cake batter.