Preheat oven to 350° F.
In a large bowl, cream together the butter, granulated sugar, and vanilla extract using a stand mixer or hand mixer.
Add the eggs, one at a time, beating well after each addition
In a small bowl, combine the flour, baking powder, and baking soda. Add to the butter mixture a little bit at a time, alternating with the sour cream and mixing well after each addition.
In a separate small bowl, cream the butter, brown sugar, and cinnamon together. Add the nuts and stir well.
Spread half of the batter into a 10 inch tube pan that has been greased and lined on the bottom with wax paper. Sprinkle half of the streusel evenly over the batter, then add the remaining batter and top with the remaining streusel.
Bake at 350° for 50 minutes or until toothpick inserted near the center comes out clean.
Cool completely on a wire rack. Run a sharp knife along the edges, then place a large plate on top of the pan and quickly flip the cake onto the plate. Remove the wax paper, then place a second plate on top of the cake and flip.