Over medium heat, melt butter.
Once the butter is melted completely, continue to cook it until it turns a light brown color. You’ll notice the butter will start to bubble and will start to change color once the bubbles subside a bit. Watch closely though because it can go from perfectly browned to perfectly burned pretty quickly.
Stir flour into butter and slowly add in milk. Whisk until smooth and starts to boil-remove from heat.
The mixture will be thick and pasty. Transfer it to a mixing bowl and place into the fridge to cool. You want it to be well chilled and not warm at all, so you can leave it in there for as long as you like. Once it’s chilled move onto the next step.
With a hand mixer or stand mixer combine the cream cheese, vanilla and sugar, mixing until the sugar is dissolved and no longer grainy. You’ll want to be using a whisk attachment, not a paddle.
While beating, add in the thickened milk mixture and beat to combine. At first it will look a little weird and gloppy, but don’t worry, keep beating, scraping down the sides a bit, and it will come together.
Once it’s smooth, you’re done! Use to frost cupcake, cakes, or cookies.