Heat a sturdy frying pan and lightly roast the coriander seeds, stirring all the time, for about a minute. Grind the seeds to a coarse powder using a mortar and pestle and set aside.
Melt the butter in a large saucepan over low heat. Add the onion and potato, cover, and leave to soften for 10 minutes. Add the cauliflower and ground coriander, season well, cover and continue cooking for another 10 minutes.
Pour in the stock, add the bay leaf, cover and simmer for about 15 minutes, until the cauliflower has softened. Meanwhile, cook the bacon under the broiler until crisp, drain on paper towels, coarsely chop, and set aside.
Remove the bay leaf and blend the soup to a puree with an immersion blender. Stir in the milk and add the half-and-half. Reheat and season with salt and pepper. Ladle the soup into bowls and scatter with the chopped bacon before serving.