Preheat your oven to 350°F. Grease and flour a 10-inch bundt pan or coat with baking spray. Set aside.
Start with the cream cheese filling. In a stand mixer, blend cream cheese, butter, and sugar until fluffy, around 2 minutes. Add egg, flour, and vanilla, mixing until smooth. Set aside.
In a medium bowl, combine flour, sugar, cocoa powder, baking soda, and salt. Set aside.
In a large bowl, whisk together vegetable oil, eggs, sour cream, milk, vanilla extract, and vinegar. Gradually add the flour mixture, mixing until well blended. Add red food coloring to reach the desired hue.
Pour half the cake batter into the prepared bundt pan. Spread the cream cheese filling evenly on top, leaving a 1-inch border around the edge. Pour the remaining cake batter over the filling.
Using a butter knife, gently swirl the cream cheese filling into the cake batter. Avoid over-mixing; just a couple of swirls will suffice.
Bake for 55 to 65 minutes, or until a toothpick inserted into the center comes out clean. Let the cake cool completely in the pan before inverting onto a serving plate.
As the cake cools, prepare the icing. Beat together powdered sugar, cream cheese, heavy cream, and vanilla extract for about 2 minutes, until smooth. Transfer to a piping bag and pipe onto the cooled cake. Serve immediately. Store leftovers in the refrigerator.