Trim roots off beets (if any) and peel the skin with a vegetable peeler. Cut beets into 1/2- to 1-inch-thick cubes, wedges or slices. Place beets in a steamer basket over 1 inch of boiling water in a large pot. Cover and steam over high heat until tender, 10 to 15 minutes.
Heat oil in a large saucepan over medium heat. Add onion and cook, stirring, until beginning to brown, about 4 minutes. Add broth, diced potato, salt and pepper; bring to a boil. Reduce heat to a simmer, cover and cook until the potato is just tender - about 8 minutes.
Add beets and vinegar; return to a boil. Cover and continue cooking until the broth is deep red and the potato is very soft, 2 to 3 minutes more.
Combine sour cream and horseradish (optional) in a small bowl. Serve the soup with a dollop of the horseradish sour cream and a sprinkle of parsley (optional).