In a medium bowl, whisk together the eggs, milk, salt and pepper until smooth. Fold in the cheese and tomatoes and set aside.
In a 9-inch, oven-safe nonstick frying pan over medium heat, melt the butter. Add the onion and saute until softened, about 5 minutes. Add the spinach and cook until wilted, about 2 minutes. Pour the egg mixture over the spinach, and cook until almost set, 2 to 4 minutes.
Transfer the pan to the oven and broil until golden brown on top, 5 to 7 minutes. Remove from the oven and turn out onto a serving plate.