In a large pot, bring to a boil 4 quarts (liters) water. Put the meat into the pot. When the water boils, skim the foam and add the carrots, bay leaves, and 1 onion. Cook for about 1 hour or until the meat comes off the bone easily.
When done, remove the carrots, onions, and bay leaves. Add the potatoes and keep cooking on a low heat.
Meanwhile, in a bowl, combine the canned tomatoes, garlic, dill, and paprika. Set aside.
In a skillet, heat the olive oil and cook the chopped onion until softened. Add the canned tomato mixture and mix to combine. Reduce the heat and cook 10 more minutes on a low heat. Transfer the mixture to the pot. Bring to a boil and keep cooking on a low heat.
Arrange the sauerkraut on a cutting board and chop a bit. Transfer to the pot and bring to a boil. Cook 15 minutes. Add some salt if needed, 3 bay leaves, and a few black peppercorns. Cook 2 minutes more. Remove from heat and let sit 30 minutes.
Serve with some chopped dill and a big dollop of sour cream. I like to pick the meat from the bones and discard bones. Enjoy!