Melt 2 tablespoons of butter in a large soup pot over medium heat.
Add onions and carrots and cook for about 10 minutes or until onions are transparent but not yet browning.
Add remaining butter, potatoes and flour. Stir until flour is evenly coating all of the vegetables.
Stir in chicken broth and bay leaves.
Simmer over medium heat for 25 minutes or until potatoes are tender.
Add heavy cream, ham and corn. Cook an additional 10 minutes over low heat.
Add salt and pepper to taste.
Serve immediately or store in the refrigerator for up to 4 days.