Melt 1 stick of butter in a large saucepan over medium heat. Add the onion, carrot, celery, and garlic, and saute for 2 minutes. Add the flour and stir to make a roux. Cook until the roux is lightly browned; set aside to cool to room temperature.
Meanwhile, combine the corn and chicken stock in another saucepan, and bring to a boil. Simmer for 10 minutes. Pour the boiling stock with the corn (a little at a time) into the saucepan with the roux, whisking briskly so it doesn't lump. Return the skillet to the heat and bring to a boil. The mixture should become very thick.
In a small saucepan, gently heat the half-and-half; stir it into the thick corn mixture. Add the nutmeg and salt and pepper, to taste.
Just before serving, cut the remaining stick of butter into large chunks. Add it to enrich the soup, stirring until the butter melts. (This added butter could be optional).