Preheat oven to 350°F (175°C) with the rack in the center position. Generously grease a 9x13 inch baking pan with butter or nonstick spray, then lightly dust with flour and tap out any excess.
In a medium bowl, combine brown sugar, flour, cinnamon, and salt, then cut in the cold cubed butter using a pastry cutter or fork until the mixture resembles coarse crumbs with pea-sized butter pieces. Refrigerate the streusel while you prepare the batter.
In a large bowl, combine the cake mix, sour cream, vegetable oil, eggs, milk, and vanilla extract. Beat on low for 30 seconds, then increase to medium speed and beat for 2-3 minutes until smooth and thick, scraping the sides as needed.
Spread half the batter in the prepared pan, sprinkle with half the streusel, and gently swirl with a knife. Carefully spread the remaining batter on top, then sprinkle with the remaining streusel and press lightly to adhere.
Bake for 40-45 minutes, rotating the pan halfway through, until the top is golden brown and a toothpick inserted in the center comes out clean or with just a few moist crumbs. If the top browns too fast, tent with foil.
Let the cake cool on a rack for 20-30 minutes. If using the glaze, whisk together powdered sugar, milk, and vanilla until smooth and drizzle over the slightly warm cake; let set for 10-15 minutes before slicing.