Combine beets, broth, onion, garlic, bay leaves, and caraway in a large pot.
Bring to a boil, then reduce heat and simmer covered 35–40 minutes until the beets are tender.
Remove the beets and onion, reserving the broth. Grate or finely dice the beets and return half of them to the pot for texture, discarding the rest or saving for another use.
Stir in vinegar, salt, and pepper, adjusting to taste.
Ladle into bowls and top each with a spoon of sour cream.