Preheat a large pot over medium-high heat and add the oil. Once the oil is hot, add the beef, season it with salt and increase the heat to high. Cook the meat until it is well browned all over, 7 to 8 minutes. Remove the beef from the pot and set aside.
Into the same pot, add the butter and allow it to melt. Add the onion, carrots and celery and toss to combine. Reduce the heat to medium and cook the mixture for 4 to 5 minutes, until the onion is translucent.
Add the garlic, then season the mixture with more salt and the black pepper, cumin, coriander and sugar. Add the beets, broth, water and tomato sauce. Add more water for a thinner soup. Return the browned beef back into the pot.
Cover the pot with a lid and bring the mixture to a simmer. Reduce the heat to low and cook the soup for 45 minutes to 1 hour, covered, until the beef is tender.
Once the beef is tender, add the potatoes and cook the soup for 15 minutes. Add the beet greens or cabbage, lemon juice (optional - add for more sour soup), dill and parsley and cook for an additional couple of minutes. Remove the soup from the heat, cover the pot and let the soup stand for 15 minutes before serving with a dollop of the sour cream and the bread.
This soup gets more delicious after it stands overnight in the refrigerator. I love to reheat a few cups at a time on the stovetop when I'm ready to enjoy it!
You can prepare this recipe using chicken, pork or even lamb. Keep the cooking time the same. I recommend going with bone-in chicken thigh or drumsticks. Brown the chicken all over just like the beef and use chicken broth in place of the beef broth. Pork ribs work really well for borscht; use them with veggie or chicken broth. Use beef broth with lamb.