Preheat oven to 350F/180C degrees. Grease a 9-inch square pan. Set aside.
To make the streusel: In a medium bowl, whisk together flour, granulated sugar, brown sugar, cinnamon, and salt. Add the melted butter and mix with a fork or your fingertips until the mixture is uniformly moistened and crumbs form. Place in the fridge while you prepare the cake.
To make the cake: In a small bowl toss blueberries with 2 teaspoons flour. This helps prevent them from sinking to the bottom while baking. In another medium bowl place the rest of the flour, baking powder, baking soda, and salt. Set bowls aside.
In a mixer bowl fitted with the paddle attachment, beat butter and sugar on medium speed for about 3 minutes, until light and fluffy. Beat in eggs, one at a time, until combined. Scrape down the sides and bottom of the bowl as necessary. Beat in vanilla extract. On low speed, beat in the flour mixture in 3 additions, alternating with the sour cream in 2 additions, starting and ending with the flour. Be careful not to overmix. Gently fold in blueberries.
Scrape batter into the prepared pan and smooth the top. Sprinkle streusel mixture evenly over the batter. It may look like a lot of crumbs, but that’s ok, use them all.
Bake the cake for 40 minutes or until a toothpick inserted into the center comes out clean. Transfer pan to a wire rack and allow to cool completely.
Store cake in the fridge, covered well, for up to 5 days. Serve at room temperature.