Preheat your oven to 350°F (175°C). Grease and flour a 9x13-inch baking pan.
In a large mixing bowl, cream together the softened butter and granulated sugar until light and fluffy.
Add the eggs one at a time, mixing well after each addition, then stir in the vanilla extract.
In a separate bowl, whisk together the flour, baking powder, baking soda, and salt. Gradually add this mixture to the wet ingredients, alternating with sour cream. Mix until just combined.
In another small bowl, combine the brown sugar, ground cinnamon, and chopped nuts (if using) to make the streusel topping.
Pour half of the cake batter into the prepared pan, spreading it evenly. Sprinkle half of the streusel mixture over the batter.
Add the remaining batter on top and spread it out gently, followed by the rest of the streusel topping.
Using a knife or toothpick, gently swirl the topping into the batter for a marbled effect.
Bake in the preheated oven for 35-40 minutes, or until a toothpick inserted into the center comes out clean.
Allow the cake to cool in the pan for about 10 minutes before transferring to a wire rack to cool completely.
Notes
Serve warm or at room temperature, dusted with powdered sugar and accompanied by coffee.