Preheat oven to 350°F (175°C). Grease and flour a 9-inch pan.
In a bowl, combine flour, baking powder, baking soda, and salt.
Cream butter and sugar until light and fluffy. Add eggs and vanilla, mixing well.
Stir in sour cream. Gradually add dry ingredients, mixing until smooth.
For the cinnamon swirl, mix brown sugar and cinnamon in a small bowl.
For the streusel topping, combine pecans, sugar, flour, and butter. Use a pastry cutter to form crumbs.
Pour half the batter into the pan. Sprinkle with cinnamon mixture. Top with remaining batter.
Sprinkle streusel topping over the cake.
Bake for 35 minutes or until a toothpick comes out clean.