In a small saucepan over medium-high heat, bring milk to a boil, stirring constantly. Once boiling, remove from the heat. *If using fresh vanilla bean, split the bean and scrape out the seeds. Add the bean and seeds to the milk and then bring it to a boil. After boiling, infuse for 10 minutes before straining.
While the milk is heating, whisk the egg yolks and sugar in a bowl until light and fluffy (pale yellow in color). Add the cornstarch and whisk together until no lumps remain.
In a slow steady stream, add approximately a ¼ cup of the hot milk into the egg mixture, whisking constantly. Continue this process until all milk has been slowly added.
Pour the mixture, through a strainer, back into the small saucepan. Cook the mixture over medium-high heat, whisking constantly, until thickened and slightly boiling.
Remove from the heat and stir in the butter and vanilla. Let the mixture cool slightly before transferring to a bowl or container. Cover the surface with plastic wrap, to prevent it from forming a skin. Chill for at least two hours before using.