Puree the soup: In a blender, add the tomatoes, bread, olive oil, garlic, vinegar, salt, and pepper. Blend on high speed until very smooth, 1 to 2 minutes. The soup should be thick and creamy, similar to the consistency of yogurt. Depending on how juicy the tomatoes are, add up to ⅓ cup of cold water to thin the soup.
Chill: Cover and refrigerate until chilled, at least 1 hour.
Serve: Divide the soup among 4 serving bowls. Garnish with the hard-boiled eggs and ham if using. Drizzle with olive oil and sprinkle with a grind of black pepper. Serve cold.
