Preheat oven to 350°F. Grease muffin tin with cooking spray.
Prepare the streusel topping by combining all ingredients in a small bowl, using a fork to cut the butter evenly into the dry ingredients until well incorporated. (It should be the consistency of wet sand.) Set aside.
In a medium bowl, combine the flour, baking powder, baking soda and salt. Set aside.
In the bowl of a stand mixer fitted with the paddle attachment, beat the butter, oil and 1 cup sugar on medium speed until well mixed. Add the eggs, one at a time, beating well after each addition.
Reduce mixer speed to low, and then gradually beat in the flour mixture, sour cream and vanilla just until combined. (Do not overmix!)
Layer the batter and streusel in the prepared muffin tin by spooning a portion of the batter, then a sprinkle of streusel, topped by another portion of batter and a final sprinkle of streusel on top.
Bake muffins for about 25 minutes, or until a toothpick inserted comes out clean. (See Notes.)
Remove muffins from oven and let cool in tin for 5 minutes before transferring to a cooling rack.
The baking time will vary based on the size of your muffins. I opted for oversize muffins, however regular-sized muffins could take anywhere from 15 to 20 minutes. The key is to rely on the toothpick test to determine doneness.