Preheat oven to 350°F (175°C). Grease a 9-inch baking pan.
Cream butter and sugar until fluffy.
Add eggs one at a time, mixing well. Stir in vanilla extract.
In a separate bowl, mix flour, baking powder, baking soda, and salt.
Add dry ingredients to wet mixture alternately with sour cream.
In a small bowl, mix sugar and cinnamon for the swirl.
Pour half the batter into the pan, sprinkle with cinnamon-sugar mixture.
Add remaining batter and swirl with a knife.
Mix streusel ingredients and sprinkle on top.
Bake for 45 minutes or until a toothpick comes out clean. Cool before serving.