Dice the two onions into small pieces (or chop in a food processor). Place the onions in a soup pot and add the butter. Saute the butter and onions until they are tender and slightly caramelized. Then add the water, chicken bouillon (or chicken broth instead of water) to the pot. Rinse the cauliflower and chop into one inch pieces (stems included). Place all of the cauliflower pieces into the soup pot. Bring the mixture to a boil. While the soup is boiling, in a separate bowl, whisk together the milk and flour until smooth. Pour this flour mixture
into the water/cauliflower mixture and stir. Continue to simmer the soup for another 10-15 minutes, or until the soup thickens and is creamy. If you like more of a smooth soup, use a hand blender and blend the soup until smooth. If you wish to serve the soup with bacon, cook a few slices of bacon in a saute pan until crispy brown. Remove the bacon and let cool until you can crumble. Serve the soup with the crumbled bacon, sliced green onions, and extra shredded cheese.