Heat half of the olive oil in a wide shallow saucepan 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 longways 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.