Preheat the oven to 350°F (175°C).
Grease or line an 8x8-inch baking pan.
Mix the streusel ingredients in a bowl until crumbly.
In a medium bowl, whisk together flour, baking powder, baking soda, salt, and cinnamon.
In a large bowl, mix melted butter, granulated sugar, eggs, vanilla extract, and sour cream.
Add the dry ingredients to the wet ingredients and stir gently until just combined.
If needed, add a little milk to loosen the batter slightly.
Spread half the batter into the prepared pan.
Sprinkle half of the streusel over the batter.
Add the remaining batter on top.
Finish with the rest of the streusel topping.
Bake for 35 to 40 minutes until golden and a toothpick inserted in the center comes out with a few moist crumbs.
Cool slightly before slicing and serving.