Place the potatoes in a saucepan with salted water and bring to the boil. Reduce to simmer and cook until tender. This will take about 6 minutes. Drain.
Menwhile heat a large frying pan. Add the oil and butter. When the butter has melted add in the onion and fry until softened, about 8 minutes. Add the potatoes, season and cook until golden. Fold in the spinach and cook until wilted. Toss the tomatoes on top.
Remove from the heat and make 4 dips in the potato mixture. Crack an egg into each dip. Breakup the cheese and dot it around the eggs. Cover and return to a medium heat. Cook until the eggs are done to your liking, about 6 minutes.