Heat the olive oil in a large soup pot over medium heat. Add the onion and carrots, and cook for 5 to 6 minutes, stirring occasionally, until the onion softens.
Add the beets and garlic. Cook for 1 minute, stirring so the garlic does not brown.
Pour in the broth. Add the bay leaves, marjoram, salt, and pepper. Bring the soup to a boil, then reduce the heat to maintain a gentle simmer. Cover partially and cook for 35 to 40 minutes, until the beets are very tender.
Remove the pot from the heat. Discard the bay leaves. For a more traditional clear barszcz, strain the broth through a fine-mesh sieve into a clean pot, pressing lightly on the vegetables; discard the solids. For a heartier soup, leave the vegetables in the broth.
Stir the vinegar and sugar into the soup. Taste and add more salt, pepper, or a small splash of vinegar as needed. Keep warm over low heat without boiling hard.
Meanwhile, cook the frozen pierogi in a separate pot according to the package directions. Drain them well when they float and are heated through.
Divide the cooked pierogi among bowls and ladle the hot beet soup around them. Top with dill and a small spoonful of sour cream, if desired. Serve right away.