Melt butter in a pan over medium heat. Add shallot and garlic to the pan and sauté until shallot is tender – approximately 3-5 minutes. Remove from the heat and set aside.
Add water and broth to a large pot. Bring to a boil, then add cauliflower to the pot. Cook, uncovered for 10 minutes, or until cauliflower is tender. Transfer cauliflower to a blender with a slotted spoon – be sure to reserve the cooking liquid.
Add garlic/shallot mixture, non-dairy milk and 3/4 cup of the cooking liquid to the blender. Blend on high until smooth – working in batches if needed.
Pour sauce into a skillet and season with salt & pepper. If the sauce is too thick, add additional cooking liquid.