Melt butter over moderate heat in a 3- to 4-quart heavy-bottomed saucepan. Stir in the leeks and/or onions, cover pan, and cook slowly for 5 minutes without browning.
Blend in the flour, and stir over moderate heat for 2 minutes to cook the flour without browning. Remove from heat, let cool a moment, and gradually beat in a cup of hot water. Blend thoroughly with the flour and vegetables, then stir in the rest of the water. Note: If you want to use milk, add it at the end of the cooking - it will curdle if you add it now.) I used 6 cups water now and 2 cups milk at the end.
Stir in the salt and pepper, optional green of leeks, and the potatoes. Bring to a boil, and simmer partially covered for 40 minutes, or until vegetables are thoroughly tender.
For a peasant-type soup, mash the vegetables in the pan with a mixing fork or potato masher. For a smoother texture, put through medium blade of a food mill. I used an immersion blender and it worked perfectly.
"Final enrichments": To serve the soup, stir in the milk if using, and blend in as much of the cream/sour cream as you wish. Add salt and pepper to taste. Off heat, stir in the extra butter if desired. Decorate each serving with more cream/sour cream and a sprinkling of herbs.