Heat the butter and oil in a saucepan, add the onion and fry for 5 minutes until softened. Add the beetroot, carrot, celery, red cabbage, potatoes and garlic and fry for 5 minutes, stirring frequently.
Stir in the stock, tomato purée, vinegar and sugar. Add the bay leaves and season well with salt and pepper. Bring to the boil then cover and simmer for 45 minutes until the vegetables are tender. Discard the bay leaves then taste and adjust the seasoning if needed.
Ladle into bowls and top with spoonfuls of soured cream, torn dill fronds and a little black pepper. Serve with rye bread.