Melt the butter into a large saucepan on a medium heat. Then add the onions and cook until soft. Add the garlic and cook for a minute or two.
Add all the broccoli into the saucepan and pour in half of the chicken stock. Turn the heat down and pour over some of the water on to the top of the broccoli. Cover and turn the heat down, let it cook for about 15 minutes or until the broccoli has steamed and is soft.
Take your soup off the heat then add the rest of your chicken stock. Using a hand blender whizz everything up. Your mixture will be a little thick now so add the vegetable stock and the rest of the water and blend again until smooth.
Add the salt and season with black pepper. Put back on a low heat and add most of the cheese, leaving some to sprinkle on the top on your soup along with the crushed walnuts.
Keep stirring until the cheese had melted in. Serve in a bowl and enjoy with bread.