Prep the pan and oven. Heat the oven to 350°F (175°C). Grease and line an 8-inch square pan with parchment, leaving overhang for easy lifting.
Make the crumb topping. In a bowl, whisk flour, brown sugar, granulated sugar, cinnamon, and salt.
Stir in melted butter until clumps form. If using nuts, fold them in. Set aside.
Whisk dry cake ingredients. In a separate bowl, mix flour, baking powder, baking soda, and salt.
This keeps the rise even.
Cream the butter and sugar. In a large bowl, beat butter and granulated sugar until light and fluffy, about 2–3 minutes. This traps air for lift.
Add eggs and vanilla. Beat in eggs one at a time, then mix in vanilla. Scrape the bowl so everything blends evenly.
Add sour cream and dry mix. Stir in sour cream.
Add the dry ingredients in two additions, mixing just until combined. If the batter seems very thick, stir in 1–2 tablespoons milk. The batter should be thick but spreadable.
Layer the batter and crumb. Spread half the batter in the pan.
Sprinkle about one-third of the crumb over it for a cinnamon ribbon. Top with remaining batter, then cover evenly with the rest of the crumb.
Bake. Bake 35–42 minutes, until a toothpick in the center comes out clean or with a few moist crumbs. The top should be golden and set.
Cool and glaze. Let the cake cool in the pan for 20 minutes, then lift it out to a rack.
For glaze, whisk powdered sugar, milk, and vanilla until smooth, then drizzle over the cooled cake.
Serve. Slice into squares. Enjoy warm or at room temperature.