Heat the vegetable oil and butter in a large, heavy-bottomed saucepan.
Once melted, add the carrot, celery and onion and cook gently for a few minutes.
Add the beetroot, potato and garlic. Fry for a couple of minutes, until well coated and combined.
Add the stock and season with salt and black pepper. Bring to just below the boil and then simmer for 15 minutes.
Add the cabbage and tomatoes. Cover and leave to simmer for a further 20 minutes.
Serve the soup with dollops of sour cream and a sprinkling of dill.