In a large pot, sweat the fish pieces, tomatoes, onion, leek and garlic in the oil. Add the tomato paste and stir to coat the fish and vegetables. Cook for 10 minutes. Add the water, salt and bouquet garni. Season with pepper. Bring to a boil, then simmer for 10 minutes.
Remove the large fish bones. In a blender, or using a hand blender, purée the stock until smooth. Over another pot or large bowl, strain the mixture through a fine-mesh sieve, pressing with a ladle to extract the most liquid possible.
In a large non-stick skillet with high sides, heat the oil over medium-high heat. Arrange the onion and potato slices over the bottom of the skillet. Season with salt and pepper. Cook for 5 minutes or until the onions begin to brown.
Arrange the fish pieces on top of the potatoes and season with salt and pepper. Pour the fish broth into the skillet until it just covers the fish. Cover the skillet and cook for 6 to 8 minutes depending on the thickness of the fish. As soon as each piece of fish is cooked, remove it from the skillet and keep warm.
When ready to serve, rub the toasted bread with the garlic halves. Spread with the rouille and top with the cheese, if desired. Divide the potatoes and onions among shallow bowls, top with the fish and ladle in the broth. Serve with the toasted bread.