Preheat oven to 350°F (180°C). Line the hazelnuts on a baking dish and bake for 10-12 minutes until fragrant and roasted.
Remove from the oven and rub into a clean towel to peel off the skin of the hazelnuts. Set aside in a bowl and keep 1/4 cup aside to use as a topping to your soup later.
In a large saucepan, warm olive oil over medium heat and add the onions. Stir and cook shallots until fragrant and golden in color.
Stir in squash cubes, parsnip slices, white leek pieces, and stir fry the vegetables for 2-4 minutes until fragrant and evenly roasted.
Add vegetable stock, water, and 1 1/4 cup roasted hazelnut.
Cover the saucepan with a lid, bring the soup to a boil, then reduce to medium heat and cook for 20 minutes until vegetables are fork-tender.
Remove from heat, remove the lid and cool down 15 minutes, then add milk and blend in a high-speed blender until smooth. You can also blend the soup with an immersion stick blender.
Stir in milk, salt, and pepper, and serve hot with remaining hazelnuts on top of each bowl.
Serve with the reserved roasted hazelnuts on top, grated hard cheese, or a dollop of sour cream.