Melt the butter in a heavy pot. Add the onions, garlic, bay leaf, parsley, and alittle sea salt and pepper. Cover and cook over a low-medium heat for about 30 minutes, stirring occasionally until the onions are very soft but not brown.
Sprinkle the flour evenly over the onions, stirring well to combine. Raise the heat to medium and continue cooking, stirring frequently (you are making a roux), for about 3 minutes, until the mixture is blended and there is no visible uncooked flour remaining.
Stir in the water, milk, and nutmeg. Continue cooking, stirring frequently, for about 15 minutes, until the soup is slightly thickened and close to a simmer. Tiny bubbles will begin to form around the edges of the soup. Stir in the Parmesan and swiss cheeses and stir to combine for about a minute, until the cheeses have melted into the soup. Taste for seasonings.