In a large bowl, place the bones (fish heads) and cover with cold water. Add a couple tablespoons of salt and stir to dissolve. Soak the bones for 30 minutes, drain and rinse under cold water to remove all signs of blood.
Heat a large stock pot over medium heat, add oil and when the oil gets hot, add the onion, carrots, leek, celery and garlic. Saute until the vegetables soften, about 3 minutes.
Add the white wine to deglaze the pan and let the wine cook down for a couple of minutes.
Add the washed fish bones (fish heads) and enough water to cover the bones and heads. This should be somewhere between 7 cups of water.
Add the black peppercorns, thyme, parsley and bay leaves and bring to a boil. As the water is coming to a boil, a white foam will appear at the top of the liquid. Use a large spoon or spatula to remove the foam and as soon as the liquid comes to a boil, reduce heat to a simmer.
Simmer the stock for 20 to 30 minutes. When done, remove from heat and let the stock cool down for 10 minutes.
Carefully strain the stock through a fine mesh strainer into another pot or large bowl. Taste and adjust seasoning with salt and pepper to taste.
If you are not using immediately, let it cool down for another 10 or 15 minutes, transfer to storage containers, cover and chill in the refrigerator.
You can store the stock in the refrigerator for 4 days or store in a freezer for up to 3 months.