Combine the tomatoes, cucumber, bell pepper, garlic, olive oil, vinegar, 3/4 teaspoon salt and a few grinds of pepper in a blender. Puree on high speed until creamy, 1 to 2 minutes. Refrigerate until ready to serve.
Divide half the cheese among 4 bread slices. Evenly top with the ham and remaining cheese and bread slices. Melt 1 tablespoon butter in a large nonstick skillet over medium heat. Add 2 of the sandwiches and cook, pressing with a heavy skillet, until golden brown on the bottom, 3 to 4 minutes. Flip the sandwiches, adding another 1 tablespoon butter to the pan. Cook, pressing with the skillet, until browned on the other side and the cheese is melted, about 3 minutes. Remove to a plate and sprinkle lightly with salt. Wipe out the skillet and repeat with the remaining 2 tablespoons butter and sandwiches.
Season the gazpacho with salt and pepper, if necessary. Divide among small bowls. Serve with the sandwiches.