1.Preheat oven to 200°C; roast bones and unpeeled onion on oven tray, uncovered, about 1 hour or until browned.
2.Combine bones and onion with the water, coarsely chopped celery and carrot, bay leaves and peppercorns in large saucepan or boiler; bring to a boil. Reduce heat; simmer, uncovered, 3½ hours. Strain stock through muslin-lined sieve or colander into large bowl; discard solids. Allow stock to cool, cover; refrigerate until cold. (Can be made ahead to this stage. Cover; refrigerate overnight.)
3.Heat butter in large saucepan; cook finely chopped onion, carrot, leek, finely chopped celery and bacon, stirring, until vegetables just soften. Discard fat from surface of stock. Add stock to pan with beetroot, tomato and cabbage; bring to a boil. Reduce heat; simmer, uncovered, 1 hour.
4.Blend or process (or pass through a food mill (mouli) or fine sieve) half of the borscht, in batches, until smooth, then return to pan. Reheat until hot, then divide borscht among serving bowls; dollop combined sour cream and dill into each bowl.
Make the beef stock either the day before or in the morning of the day you want to eat this satisfying soup so that it can chill long enough for the fat to solidify on top; scoop it away before reheating the stock.Note