Preheat oven to 350. Butter a 9” spingform pan, line with parchment and butter the parchment. Set aside. You can also use a 9” cake pan with 3” high sides.
Make the streusel. Combine all ingredients except the nuts and mix well with your hands until you have a thoroughly combined crumbly mixture. Stir in the nuts and set aside.
In a medium bowl combine the flour, baking powder, baking soda, cinnamon, ginger, nutmeg and salt, and mix with a whisk.
Place the butter in a stand mixer with the paddle attachment and cream until soft and fluffy about 2-3 minutes on medium speed. Add the eggs one at at time, scraping the bowl to make sure it is well mixed. Add the pumpkin, vanilla, and sour cream or yogurt, and mix again. The mixture may look curdled, and this is ok.
Add the flour mixture and beat until just combined. Do not over mix. Pour into your prepared pan and smooth the top. Crumble the streusel on top of the cake covering it evenly. Bake 50-55 minutes until cooked through. A cake tester will come out clean.
Remove from the oven and let cool in the pan for at least 15 minutes. Serve warm, or let cool completely. Cake will keep, wrapped well, for 3 days at room temperature.