In a medium saucepan, combine hazelnuts, heavy cream and milk. Bring to a simmer over medium heat, stirring occasionally. Cover and remove from the heat. Cool to room temperature and then refrigerate overnight or up to 36 hours.
Return chilled hazelnut mixture to the saucepan and bring to a simmer. Strain through a mesh sieve into a large bowl. Discard hazelnuts.
To the medium saucepan, combine sugar, salt and egg yolks. Whisk until smooth. Add warm hazelnut milk followed by the mascarpone and whisk again until combined.
Cook over medium-low heat, stirring constantly until thickened and coats the back of a wooden spoon. Strain the ice cream base into a non-reactive container and cool.
Once cool add vanilla or Frangelico. Refrigerate overnight.
Pour into ice cream canister and freeze in an ice cream maker according to manufacturer's directions. Makes about 1 quart.