Preheat oven to 350°F (175°C) and grease a 9x9-inch baking pan.
In a medium bowl, mix flour, baking powder, baking soda, and salt. Set aside.
Cream butter and sugar until fluffy. Add eggs one at a time, then vanilla and sour cream.
Gradually mix in the dry ingredients, being careful not to overwork the batter.
Gently fold in blueberries.
For the streusel, combine sugar, cinnamon, and flour. Cut in cold butter until crumbly.
Pour batter into pan, top with streusel, and gently press down.
Bake for 40-45 minutes, until a toothpick comes out clean.
Cool for 10 minutes, slice, and serve.