Preheat your oven to 350°F (175°C). Grease and flour a 9x13 inch baking pan or line it with parchment paper for easy removal.
In a medium bowl, combine 1 cup of flour, 1/4 cup of brown sugar, 2 tsp ground cinnamon, and the chopped nuts (if using). Add 1/4 cup of softened butter and mix until crumbly. Set aside.
In a large mixing bowl, cream together the softened butter and granulated sugar until light and fluffy. Add the eggs, one at a time, and beat well after each addition. Mix in the vanilla extract.
In another bowl, whisk together the remaining flour, baking powder, baking soda, and salt.
Gradually add the dry ingredients to the wet mixture, alternating with the sour cream. Start and end with the dry ingredients. Mix until just combined; do not overmix.
Pour half of the batter into the prepared pan. Spread evenly, then sprinkle half of the streusel topping over the batter. Pour the remaining batter on top, smoothing it out before adding the rest of the streusel topping.
Place the cake in the preheated oven and bake for 35-40 minutes, or until a toothpick inserted into the center comes out clean. Keep an eye on it towards the end to avoid overbaking.
Allow the cake to cool in the pan for about 15 minutes before transferring it to a wire rack to cool completely.
Notes
Dust with powdered sugar before serving and cut into squares. Serve with a hot cup of coffee for the perfect pairing!