Heat butter in a large skillet over medium heat. Add onions and sauté for 5-7 minutes, stirring occasionally, until softened. Add in ham and cook for a few minutes.
In a large mixing bowl, whisk together eggs, milk, salt and pepper. Stir in cheese (can reserve 1/4 cup for topping if desired).
Turn the skillet to medium-low. Pour the egg mixture into the skillet and stir well to distribute all of the ingredients.
Cook over medium heat (without stirring) for about 1 minute, until the edges start to set.
Transfer the skillet to the oven and bake for 10-12 minutes, until the center is set. Remove from the oven and let cool slightly before slicing.