Arrange bread in a lightly greased 28cm x 16cm (3 litre-capacity) baking dish.
Heat butter in a large non-stick frying pan over medium heat. Add onion and cook stirring for 4-5 minutes or until softened. Add spinach, salt and pepper and cook for 1 minute, until wilted. Spoon over the bread, set aside.
Beat together 4 of the eggs, the milk and cheese. Pour over the bread mixture. Cover and refrigerate for at least 2 hours (or overnight) to soak.
Stand the strata at room temperature while the oven is preheating to 180°C fan forced. Using a large metal spoon, make 4 indentations into the bread mixture. Crack the one of the remaining eggs into each indentation. Cook for 20–25 minutes or until golden and eggs are cooked to your liking.
Place the tomatoes on an oven tray and roast for 10 minutes. Serve the strata with tomatoes and basil leaves.