Put potatoes in a large soup pot or Dutch oven. Cover with cold water. Bring to a boil. Reduce heat a little, so it is boiling but not boiling over.
Add the cauliflower florets after potatoes have been boiling 15 minutes. Boil potatoes and cauliflower together until they are both very tender.
Drain potatoes and cauliflower and mash together. Mash really well, so there are no lumps of cauliflower (unless you don't care abut that).
Meanwhile, heat oil over medium-high heat in a large soup pot. Sauté onions in oil for about 7 minutes. Add in garlic and stir for 30 seconds.
Pour in chicken broth and stir well.
Whisk together ½ cup cold milk and flour. Slowly whisk mixture into pot. Stir in remaining milk.
Continue stirring, and bring to a boil. Reduce heat to a simmer, and cook, while whisking constantly, for about 3 minutes. Soup should be thickened.
Stir in reserved mashed potatoes and cauliflower. Season with parsley, salt, and pepper.
Cook soup for about 5 minutes until everything is well combined and cooked through. {if it's too chunky or not mixing well, use an immersion blender or regular blender to combine some of the soup a little better. I had to do this.}
Remove from heat. Stir in yogurt.
Serve in four soup bowls and top each with 1 slice bacon, about 2 tablespoon cheese, and 1 tablespoon green onion.
Notes
*I like to leave the potato skins on because it adds a lot of fiber and nutrients. It also adds some nice texture to the soup. If you really hate that, then you could peel the potatoes.*You can use 1.5 tablespoon cornstarch in place of the flour for a gluten-free soup.*If you have a severe aversion to cauliflower, just increase the potatoes to 1.5 lb. and use ½ lb. of cauliflower. Obviously, the nutrition stats will change but it will still have more nutrients.