Beat the cream cheese and butter. In the bowl of a stand mixer fitted with a paddle attachment, or in a large bowl using a electric mixer, add the softened cream cheese and butter. Beat on medium speed for about 1 minute, or until smooth, creamy, and fully combined. Scrape down the sides of the bowl as needed.
Add the powdered sugar. Gradually add the powdered sugar, about ½ cup at a time, mixing on low speed after each addition to prevent the sugar from flying out of the bowl. Continue until all of the powdered sugar has been incorporated.
Add the vanilla and milk. Pour in the vanilla extract and milk. Mix on low speed until the ingredients are combined and the frosting is smooth.
Whip the frosting. Increase the mixer speed to medium-high and beat for about 5 minutes. This gives the frosting time to become light, fluffy, and creamy. Scrape the sides and bottom of the bowl with a rubber spatula, once or twice during mixing to ensure everything is evenly incorporated.
Check the consistency. The finished frosting should be thick enough to hold its shape but soft enough to spread easily. If it is too thick, add a small splash of milk or heavy cream. If it is too thin, add a little more powdered sugar until you reach the desired consistency.
Use or chill. Spread the frosting over completely cooled cakes, cupcakes, cookies, or other baked goods, and easily use a piping bag to decorate. If you're not using it immediately, cover and refrigerate until ready to use. Let it sit at room temperature for a few minutes and stir briefly before spreading if it has become firm.