To make the achiote oil, add the 4 tablespoons of oil to the pan and 1 tsp of achiote seeds, heat over low medium and stir gently until the seeds release their color into the oil. Use a slotted spoon to remove the all the seeds. If you have achiote powder or ground achiote instead of the seeds, you can just add in the next step
Next make a refrito or sofrito base for the soup with the achiote oil or (regular oil/butter plus achiote powder) add the diced onion, crushed garlic, cumin, salt. Cook over low medium heat until the onions are soft and transparent, about 3 to 5 minutes.
Add the cauliflower and potato chunks, mix until well coated by the refrito.
Add 4 cups of water or just until the cauliflower/potatoes are barely covered. Bring to a boil and cook (lightly boiling) until the potatoes are tender, about 25-30 minutes.
Use a masher to mash the potatoes and cauliflower.
For a smoother creamier soup, you can also use an immersion blender, but if you prefer it more rustic/chunky then just use the masher.
Add the milk, mix well and cook on low heat for another 5 minutes.
You can also add more milk (or water/broth) if the soup is too thick.
Add the crumbled cheese and finely chopped cilantro, mix them into the soup. Taste and adjust salt/pepper to your preference.
Serve the soup garnished with additional chopped cilantro, chopped green onions and chives, avocado, extra cheese, fried cauliflower pieces, and hot sauce to taste.
Notes
To make the fried cauliflower pieces I used the smallest florets/pieces and simply sauteed them will a small amount of oil until golden, then sprinkled a little salt on them. Very simple and easy.