Rinse the heads and bones and place set aside. Heat the olive oil in a deep saucepan and add the fish heads and bones. Cook the fish pieces over a high heat, stirring constantly, until the fish pieces begin to break down, scraping up anything that sticks to the bottom of the pan, about 20 minutes. Add the wine and simmer, stirring well. Add the prepared vegetables, herbs, bay leaves and water and simmer for 30 minutes, skimming any scum off the surface as it appears.
After 30 minutes, strain the stock thoroughly, pressing on the solids to extract as much liquid as possible. Return to the heat for a further 20 minutes then add salt and pepper to taste. Set aside.
To make the soup, heat the olive oil and add the sliced leeks, fennel, shallots, potatoes and saffron and cook over a medium heat until all the vegetables are golden and soft, about 20 minutes. Add the squashed canned tomatoes and reserved fish stock and bring the soup to the boil. Add salt and pepper to taste.
Add the fish, prawns and mussels and simmer for 10 minutes. Add the cleaned squid and parsley and stir gently. Remove the soup from the heat and cover. Allow to rest for 10 minutes. Meanwhile, brush the sliced sourdough bread with olive oil and grill until golden on both sides. Rub a clove of garlic over each golden slice. To serve, place a slice of grilled bread on the bottom of each soup bowl and ladle the hot soup over, making sure that everyone gets some mussels, prawns and squid. Add a spoonful of rouille if desired.
Per serving: 2958 Calories (kcal); 105g Total Fat; (36% calories from fat); 130g Protein; 279g Carbohydrate; 224mg Cholesterol; 2946mg Sodium Food Exchanges: 5 1/2 Grain(Starch); 13 1/2 Lean Meat; 29 1/2 Vegetable; 0 Fruit; 16 1/2 Fat; 0 Other Carbohydrates