Preheat the oven to 400F. Line a muffin pan with liners.
Crumb topping
Mix together the flour, granulated sugar, brown sugar, cinnamon, and salt together in a bowl.
Add the cubed butter to the bowl and use a pastry cutter or your hands to cut the butter into the dry ingredients until everything comes together into crumbs of varying sizes.
Store in the freezer until needed.
Muffin Batter
Add the butter, oil, granulated sugar, and vanilla extract to a stand mixer fitted with a paddle attachment (or a large mixing bowl and hand mixer). Beat until light in color - about 2-3 minutes.
Beat in the eggs until fully incorporated into the butter mixture - about another 1 - 2 minutes.
Add the flour, baking powder, baking soda, and salt together in a separate bowl and set aside.
Mix the sour cream and milk together a small bowl.
Alternate between slowly adding the flour in three batches and the sour cream in two batches. Begin and end with the flour. Set aside.
Cinnamon Swirl
Mix the ingredients for the swirl together in a small bowl and set aside.
Assembly
Add a scoop of the muffin batter into the liners so they are a little less than ½ full.
Top the batter with a large spoonful of the cinnamon swirl over the batter.
Spoon more batter over the swirl until the liners are about ¾ full.
Gently press some of the streusel topping onto the batter so they adhere to the muffins when they bake.
Bake the muffins at 400F for 5 minutes before turning the oven down to 350F without opening the oven door. Continue baking for an additional 10 - 14 minutes, or until they are golden brown and a toothpick inserted in the middle comes out with crumbs clinging to it.
Remove from the oven and allow to cool until they are cool enough to handle.
Icing and Finishing
Whisk the ingredients together for the icing until it becomes smooth. Drizzle over the muffins and enjoy!