Put 2 cups of whole milk in a boiler and whisk in ⅔ cup flour. Set it on medium heat and stir often with a rubber spatula until it becomes very warm.
When you notice the milk beginning to steam, stay close and stir very often, almost continuously, scraping the bottom of the pot with the spatula to ensure the building residue does not scald.
When it becomes quite thick, like a pudding, stir in 1 cup of sugar until completely dissolved and incoorperated and remove from heat.
Set a fine mesh sieve in a large bowl and pour the pudding from the pot, through the sieve, into the bowl. This will ensure no clumps get into your frosting.
Cover the pudding mixture with a plastic wrap, making contact with the surface of the pudding to prevent a film from forming.
Allow it to cool completely to room temp. You can place it in the refrigerator to speed up the process. If you combine it with butter too soon, it will melt your butter and the results will be very sad. Now is a good time to take your butter out of the fridge and let it warm up to room temp.
Whip your (softened) butter until it is pale and fluffy, usually a minute or two on high will do. Mix in the cooled pudding gradually. Add a few teaspoons of vanilla as well. (If you used unsalted butter, you'll also want at least ½ teaspoon of salt. If you used salted butter, just add salt to taste.)
Frost something delightful and live happily ever after.