Soak a 3-litre (3-quart) terracotta baking dish and its cover in water for about 15 minutes. If you are not using a terracotta dish, preheat the oven to 200°C (400°F) with the rack in the middle position (see note).
In a skillet over medium heat, caramelize the onions in oil. Season with salt and pepper. Add the garlic and continue cooking for 1 minute. Set aside.
Remove the terracotta dish and cover from the water.
Cover the bottom of the dish with one quarter of the potato slices.
Add half the tomatoes and olives. Season with salt and pepper.
Cover with another quarter of the potatoes. Cover with the onion and garlic mixture.
Cover with another quarter of the potatoes, and then lay the fish on top. Season with salt and pepper. Cover with the remaining potatoes, tomatoes and olives.
Add the broth. Adjust the seasoning.
Cover the dish and place it in the centre of the oven. Turn the oven on to 200°C (400°F). Bake until the potatoes are tender, about 1 1/4 hours. Let stand for 15 minutes and serve.
*Note: If you do not have a terracotta dish, you can use any ovenproof covered baking dish. In that case, preheat the oven and reduce the cooking time to about 1 hour.