Preheat the oven to 350°F (175°C). Generously grease a 10-cup Bundt pan with butter, making sure to get into every groove, then lightly dust with flour and tap out the excess.
In a medium bowl, combine brown sugar, flour, cinnamon, and salt. Cut in cold butter with your fingertips until the mixture resembles coarse crumbs. Stir in nuts if using.
In a large bowl, whisk together flour, baking powder, baking soda, and salt. Set aside.
Beat softened butter on medium-high for 2 minutes until pale and fluffy. Add sugar and beat for 3-4 minutes more until light and aerated. Scrape down the bowl.
Add eggs one at a time, beating well after each addition. Add vanilla with the final egg and mix until combined. Scrape down the bowl.
With the mixer on low, alternate adding the flour mixture in thirds and the sour cream in halves, mixing just until combined after each addition. Finish folding by hand with a spatula. Do not overmix.
Spoon half the batter into the prepared pan and spread evenly. Sprinkle half the streusel over the batter, avoiding the edges and center. Top with remaining batter and spread gently. Sprinkle the remaining streusel on top and press down lightly.
Bake at 350°F (175°C) for 55-65 minutes, until a toothpick inserted into the thickest part comes out clean or with a few moist crumbs. Tent with foil if browning too quickly.
Cool in the pan on a wire rack for exactly 15 minutes, then invert onto a serving plate and lift the pan away. Cool completely before glazing.
Whisk powdered sugar, milk, and vanilla until smooth. Drizzle over the cooled cake and let set for 10 minutes before slicing and serving.