Preheat oven to 350 degrees F. Line muffin pans with paper baking cups.
Make the streusel topping - Melt butter in a small bowl then add sugar, flour, and salt. Mix with a fork until it forms a crumb then set aside.
Make the cream cheese filling - In a medium bowl, stir together cream cheese and sugar. (You can soften the cream cheese in the microwave, if needed - 30 seconds on low/defrost setting.) Set aside.
In a large bowl, whisk eggs then add in sugar, oil, milk, vanilla, and vinegar. Using a wooden spoon or spatula, stir in soda, salt, and flour until just barely combined. Mix in sour cream. Gently fold in blueberries.
Fill muffin cups with 1-2 Tbsp batter. Add 1 tsp cream cheese mixture. Top with 1 Tbsp batter. Sprinkle streusel topping on top and press down gently with the back of a spoon.
Bake for 18-22 minutes until muffins are golden brown. Cool 5-10 minutes in pan.