Sauté onion and garlic in the oil or butter until tender-do not let brown. Add the flour and stir into the oil to make a roux. Cook the roux for about 4-5 minutes, but do not let it brown.
Using a wire whip, slowly stir in the stock. Bring to a boil stirring all the time to keep the liquid smooth. Add the wine. Add the potatoes and bay leaves and simmer until the potatoes are tender. Add the corn and shredded basil and return the soup to a simmer.
Stir in the half and half and season to taste.