Heat half of the olive oil in a wide shallow casserole and cook the onion and the tomatoes until softened and reduced to a thick paste, about 10 minutes. Stir in the tomato puree and the cayenne.
Cut the potatoes lengthwise into 4-6 wedges and arrange on top of the tomato mixture. Sprinkle with salt and set fish fillets on top. Pour in the cold water, making sure the potatoes are just covered. Bring to a boil then reduce to a simmer.
Cover and simmer for 20 minutes until the potatoes are tender--the fish will be cooked in that time.
If you want, remove the lid and bubble the mixture rapidly to reduce it. However, it's best to leave plenty of juice when making this dish to mash the potatoes in.