Preheat the oven to 350°F (175°C) and grease a 9x13-inch baking pan.
In a bowl, mix flour, baking powder, baking soda, and salt. Set aside.
In another bowl, cream butter and sugar until fluffy. Add eggs one at a time, followed by vanilla and sour cream.
Gradually add the dry ingredients to the wet mixture, mixing just until combined. Avoid overmixing.
In a small bowl, stir sugar and cinnamon for the swirl.
Spread half the batter in the prepared pan. Sprinkle with the cinnamon-sugar mixture.
Top with the remaining batter, spreading it evenly.
For the streusel, combine flour, brown sugar, and cinnamon. Cut in butter until crumbly. Sprinkle over the batter.
Bake for 45 minutes or until a toothpick inserted in the center comes out clean.
Cool slightly before slicing. Enjoy warm or at room temperature.