Chop, core and wash the cauliflower well.
Add the cauliflower florets to a big pot, add about 4 cups of the broth. Turn on the heat to medium-high, cover and bring to a boil. Then turn the heat down to medium-low and simmer till the cauliflower is tender. Puree the cauliflower well using an immersion blender or cool slightly and transfer to a blender.
While the cauliflower is cooking, in a separate pan, heat the oil on medium heat. Add the onions, leeks, carrots and celery. Cook for a few mins until the onions are translucent.
Add the garlic, thyme, salt and pepper. Cook for another few mins.
Transfer the veggies into the pot of pureed cauliflower and broth. Add the rest of the broth until the soup reaches your desired consistency.
Add the chopped potatoes and ham and bring to a simmer. Cook until the potatoes are soft. Season with salt and pepper to taste.
Ladle into bowls and serve!
Top with shredded cheese and crispy bacon if desired.