For this soup, it really is worth it to make your own fish stock.
Heat oil in a large pot over medium-high heat. Add onion, garlic, carrots, and leek whites and sauté, stirring, until limp, 2 to 3 minutes. Add fish heads and bones and cook, stirring, until flesh begins to turn opaque, about 3 minutes. Add leek greens, parsley, thyme, peppercorns, wine, and 6 to 8 cups water (just enough to cover). Bring to a boil, then reduce heat to low, cover, and simmer 30 minutes. Skim any foam.
Strain through a fine-mesh strainer or a colander lined with cheesecloth. Set stock aside (you will have about 9 cups).
*Check with the fishmonger at your farmers' market, or order ahead from a seafood shop.
Make ahead: 1 day, covered and chilled; up to 3 months frozen.