Heat a non-stick pan over medium-low heat. Butter one side of the bread slices with butter. Place the bread slices butter-side down in the pan. On one slice of bread, place gruyere, spinach, and tomatoes seasoned with salt and pepper. On the other, place cheddar, ham, and onions.
Cover with a lid (watch the heat, make sure the bread isn't burning). When the cheese is melted and the bread is nicely grilled to golden brown, put the two slices of bread together and then remove from heat.