Heat the oil in a large heavy pot or Dutch oven over medium heat. Add the flour a tablespoon at a time, stirring constantly with a wooden spoon until blended. Continue stirring to make a light brown roux, 5 to 10 minutes.
Add the onions, corn, shallots, celery, garlic, salt, and cayenne and cook, stirring occasionally, until the onions soften, about 4 minutes. Slowly stir in the stock. Add the bay leaves and bring to a boil. Add the milk, cream, and the crab boil, if using. Reduce the heat to medium-low. Simmer, uncovered, for 30 minutes.
Stir in the lobster meat and green onions and simmer for 5 minutes. Remove and discard the bay leaves.
Ladle into shallow soup cups or bowls and serve hot.