Sweat the onions in the oil until just browning. Chop the tomatoes and add to the onions with salt to taste. Cook for 10 minutes, stirring occasionally. Press the vegetables to the side of the pan and remove to a bowl with a slotted spoon. Leave to cool.
Beat the eggs until well mixed but not frothy. Add the vegetables, cheese, a good quantity of pepper and salt to taste. Tear up the basil leaves, add and stir everything together. Melt the butter in a 12 inch nonstick frying ban until just foaming. Pour in the egg mixture, lower the heat and cook for 15 minutes until the eggs are set but the top is still a bit runny. Then put the pan under the broiler for 30 seconds.
Loosen the frittata with a pliable spatula and slide onto a suitable dish. Cut into wedges when cooled. It can be eaten warm with a salad or cold on a hunk of bread.