Chop the milk chocolate into small pieces and put them in a medium bowl. Set a mesh strainer over the top.
Heat the milk, sugar, and salt in a medium saucepan.
In a separate bowl, stir together the egg yolks. Pour the warm milk gradually into the yolks, whisking constantly as you pour. Scrape the warmed yolks and milk back into the saucepan. Cook over low heat, stirring constantly and scraping the bottom with a heat-resistant spatula just until the custard thickens enough to coat the spatula. Don't overcook or boil.
Immediately strain the custard into the bowl of milk chocolate. Stir gently with a spatula or whisk until the chocolate is completely melted. Stir in the heavy cream, vanilla, and amaro. Chill thoroughly.
When ready to churn, taste, and add additional amaro if desired. Freeze in an ice cream maker according to the manufacturer's instructions.
To make the chocolate "chips," chop the semisweet or bittersweet chocolate and put it in a small bowl. Set the bowl over a small pot of barely simmering water, stirring until melted and smooth. Be careful not to let any water, liquid, or steam into the chocolate, or it will seize. Remove from heat and set aside. (But you do want it to remain pourable so if your kitchen is cool, you may want to keep it over the warm water in the saucepan while the ice cream is churning.)
When the ice cream is ready, either drizzle the melted chocolate as slowly as possible in a thin, steady stream into the ice cream while the dasher is turning (some may cling to the dasher, but you can just scrape that off later) or working quickly, layer the ice cream into a chilled container, drizzling some of the chocolate over each layer as you go and using a spoon or butter knife to break up the chocolate into little bits. Note that if you use a spoon, do not use the same spoon that you use for dipping into the chocolate that you do for stirring the chips as the chocolate will seize if you get a small amount of the custard (or any liquid) in it.