Preheat oven to 350 degrees and arrange rack to the center of the oven. Line a 9x9 pan with parchment paper and set aside. Do NOT use an 8x8 pan.
In a large bowl, whisk flour, baking powder, baking soda, cinnamon and salt together very well.
In a separate bowl, beat, butter, vegetable oil, and both sugars until smooth. Add sour cream, eggs and vanilla and mix until combined. Add flour gradually and mix until smooth. Pour in milk and beat again until just incorporated as you do not want to over-mix the batter.
For the filling, whisk brown sugar and cinnamon together in a small bowl. Pour half of the batter into prepared pan and top with filling mixture in an even layer. Spread the remaining batter on top of the filling. Set aside while you make the topping.
For the topping, toss both sugars, flour, cinnamon and salt together in a large bowl. Stir in melted butter until crumbly. It will still be wet but you will be able to break it up into smaller pieces. If for some reason it won't crumble, add another tablespoon of flour to the mixture. Crumble the topping over the batter in the pan into an even layer. Bake for 35-40 minutes OR until a toothpick inserted in the center comes out clean.
While cake is cooling, prepare glaze. In a small bowl, combine confectioner's sugar, vanilla and milk until smooth. Add more or less milk for your desired thickness - I like mine on the thicker side so it doesn't melt into the cake. Drizzle onto cooled cake.