1. Rub the toasted hazelnuts in a kitchen towel after roasting to remove as much of the papery skin as possible. Discard the skins. Chop the hazelnuts in a food processor or blender until finely chopped.
2. Warm the milk with 1 cup of the cream, sugar, and salt in a saucepan. Once warm, remove from heat and add the chopped toasted hazelnuts. Cover and let steep for 1-1/2 hours.
3. Put the milk chocolate pieces in a large bowl. Heat the remaining 1 cup of cream in a medium saucepan until it begins to boil. Pour the cream over the milk chocolate pieces and stir until the chocolate is completely melted and smooth. Set a mesh strainer over the top of the bowl.
4. Pour the hazelnut-infused milk through a strainer into a medium saucepan. Squeeze the nuts with your hands to etract as much of the flavorful liquid as possible. Discard the hazelnuts.
5. Rewarm the halzenut-infused mixture. In a separate bowl, whisk together the egg yolks. If you don't have a rubber bottomed bowl, place it on a rubber glove or moistened kitchen towel for the next step. Slowly pour the warm hazelnut mixture into the egg yolks, whisking constanly, then scrape the warmed egg yolks back into the saucepan.
6. Stir the mixture constanly over medium heat with a wooden or heatproof plastic spatula, scraping the bottom as you stir, until the mixture thickens and coats the spatula. Pour the custard through the straner and stir it into the melted milk chocolate. Add the vanilla and stir until cool over an ice bath.
7. Chill mixture thoroughly in the refrigerator, then freeze in your ice cream maker according to the manufacturer's instructions.
8. Serve immediately for a soft, smooth gelato. Place gelato in a container and freeze for a firmer gelato.
Note-to toast hazelnuts-place hazelnuts in a 350 degree oven for ten minutes. Stir once while roasting. Remove from oven and let cool and then remove skins.