Combine onions, green pepper and celery while you start the roux.
In a heavy saucepan, heat oil over medium-low heat. With a metal whisk, whisk in flour a little at a time, until smooth. Continue cooking, whisking constantly, until roux is light brown, about 2-3 minutes.
Remove from heat and stir in vegetable mixture. Add white, black and cayenne peppers. Return pan to high heat and cook about 2 minutes, stirring constantly.
Add bay leaves, chilies, and garlic, stirring well. Continue cooking for about 2 minutes, stirring constantly. Remove from heat.
In a separate saucepan, bring stock to a boil. Add roux mixture by spoonfuls to the boiling stock, stirring until dissolved between each addition.
Bring mixture to a boil, then reduce to a simmer and reduce sauce for about 15 minutes.