Preheat and prep: Heat oven to 350°F (175°C).
Grease and line an 8- or 9-inch square pan with parchment for easy removal.
Make the streusel: In a bowl, combine 1 cup flour, 1/2 cup brown sugar, 1/3 cup granulated sugar, 2 teaspoons cinnamon, and a pinch of salt. Stir in 6 tablespoons melted butter until clumps form. Add 1/2 cup chopped nuts if you like.
Set aside.
Mix dry ingredients: In another bowl, whisk 2 cups flour, 1 1/2 teaspoons baking powder, 1/2 teaspoon baking soda, and 1/2 teaspoon salt.
Cream the butter and sugar: Beat 1/2 cup softened butter with 3/4 cup granulated sugar until light and fluffy, about 2–3 minutes.
Add eggs and vanilla: Beat in 2 large eggs, one at a time, then 2 teaspoons vanilla. Scrape the bowl.
Combine with sour cream and milk: Mix in 1 cup sour cream. Add the dry ingredients in two additions, alternating with 2–4 tablespoons milk, just until smooth and thick.
Do not overmix.
Layer the batter and streusel: Spread half the batter into the pan. Sprinkle half the streusel evenly. Add the remaining batter (it will be thick; dollop and gently spread), then top with remaining streusel.
Bake: Bake 35–45 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 serve: Let cool at least 20 minutes before slicing. For a simple finish, dust with powdered sugar.