Melt butter in a large saucepan over medium-low heat. Add onion and garlic; cook, stirring, until onions have softened, about 15 minutes.
Add tomatoes, chicken stock, salt, and pepper; bring to a boil. Reduce heat to low and cook until tomatoes, onions, and garlic are soft, 10 to 20 minutes.
Working in batches, transfer soup to the jar of a blender and puree until smooth. Return to saucepan and place over medium heat. Cook until soup is heated through. If soup seems too thick, stir in some extra stock to thin. Serve immediately.