Finely chop the onion and celery.
Heat the oil in a large saucepan. Add the onion, celery and caraway seed and a pinch of salt. Gently sauté for about 10 minutes.
Meanwhile core and finely shred the cabbage, then peel and finely chop the apple.
When the onion and celery are soft, stir in the tomato purée and cook for 1 minute, then the cabbage and apple. Stir in the vinegar and cover the pan with a lid. Gently simmer for 15 minutes over a low heat, stirring occasionally.
Add the sugar and the stock and bring to the boil. Put the lid on and simmer for 30 minutes.
Using a hand-held blender, whizz the soup until smooth. Season with black pepper and salt if needed.
Mix together the sour cream and horseradish in a small bowl.
Serve the soup with dollops of the horseradish cream and sprinkle with some fresh herbs, if you like.