Make the Cake: Preheat oven to 350 degrees F. Grease and flour a standard 12-cup Bundt pan.
In a medium bowl, sift together the flour and baking powder; set aside.
Using an electric mixer on medium speed, cream together the butter and sugar until light and fluffy, about 3 minutes. Add the eggs and beat until well combined, scraping down the sides of the bowl as needed. Reduce the mixer speed to low and add the flour mixture in three additions, mixing until just combined after each.
In a small bowl, stir together the sour cream and baking soda (it will start to fizzle and foam!), then add it to the cake batter and fold it in with a rubber spatula until thoroughly combined. Add the vanilla extract and stir to combine.
Make the Cinnamon Filling: In a small bowl, mix together the brown sugar, butter, and cinnamon until completely combined.
Bake the Cake: Place one-third of the batter into the prepared pan, then sprinkle half of the cinnamon filling over top of the batter. Cover with another third of the batter, then the remaining cinnamon filling, then finally the remaining batter. Smooth into an even layer.
Bake for 50 to 60 minutes, or until a skewer inserted into the center comes out with moist crumbs. Allow the cake to cool in the pan for about 15 minutes, then turn out onto a wire rack to cool completely.
Make the Cream Cheese Icing: In a medium bowl, stir together the cream cheese and powdered sugar until completely combined, then stir in the vanilla extract and 2 tablespoons of the milk. Add more milk 1 tablespoon at a time to get the desired consistency; for me, 4 tablespoons was the sweet spot of being thick like I wanted, but still dripping a bit down the sides of the cake.
Drizzle the cream cheese icing over the top of the cake, letting it run down the sides. Allow to sit for 15 minutes before serving. Leftovers can be stored in an airtight container at room temperature for up to 5 days.