Gather the ingredients.
Put 2 ½ cups milk, ¼ cup parsley sprigs (leaves and stalks separated), 1 bay leaf, and 1 pound smoked haddock fillet into a large saucepan.
Finely chop the parsley leaves. Set aside.
Bring the milk to a gentle boil over medium heat. Lower the heat to low simmer, about 3 minutes.
Remove the pan from the heat. Set aside for 5 minutes so the herbs and haddock infuse their flavors into the milk.
Remove the haddock from the milk with a slotted spatula. Set aside.
Strain the liquid through a fine mesh strainer. Discard the herbs.
In another large saucepan over medium-low heat, add 2 ounces (4 tablespoons) unsalted butter and 1 medium onion (finely chopped). Cook gently until the butter melts and the onions become translucent, about 5 minutes. Be careful not to burn the onion.
Add the infused milk and 8-ounce mashed potatoes to the onion-butter mixture. Stir until the potatoes dissolve and the soup thickens slightly.
Flake the smoked haddock into bite-size chunks, discarding any bones. Add to the soup.
Lower the heat to a gentle simmer. Add the chopped parsley and cook until the haddock is warmed through, about 5 minutes. Be careful not to over-stir, as the fish chunks might disintegrate.
Season to taste with kosher salt and freshly ground black pepper. Be careful with the salt, as the fish will impart quite a salty flavor all on its own.
Garnish the soup with the reserved parsley leaves and more freshly ground black pepper. Serve with crusty bread, if desired.
