Melt the butter in a heavy based deep pan. Once melted add the onions and cook until soft without colour, add the carrots, cook for another two to three minutes and then take off the heat and add the flour until it reaches a sandy texture. Add a stock cube(if desired - or add it to the water later on) and the tomato puree and stir. Add the water and bring to the boil - if adding the stock cube to the water make sure the water is hot so it can dissolve the cube.
Once boiled, turn the heat down and leave to simmer for approximately 1 hour. When the carrots are nice and soft, whizz the mixture down using a hand held blender or a standalone blender. Blend until smooth. Stir in the crème fraiche. optional - Make a vinegar reduction by boiling a cup of balsamic vinegar and reducing down by a 1/4 and add to the soup - this just adds a little kick to the soup and lifts the flavour.