In a large pot heat 2 tablespoons for olive oil (or butter). Add chopped onion and sauté for 4-5 minutes, add crushed garlic and sauté for 1 minute.
Add flour and cook over medium heat for 1-2 minutes. Add corn, water/stock and spices. Bring to a boil, reduce to low heat, cover and simmer for 20 minutes.
Reserve one cup of the corn for later (optional step), turn the heat off and blend the soup until smooth.
Return reserved corn to the soup, add coconut milk (optional) and cook for 10 minutes over low heat.