Melt butter in a large, heavy bottomed pot (such as a dutch oven) over medium heat.
Add onions and carrots and cook for 5-6 minutes or until softened.
Sprinkle flour over top and cook for one minute.
Pour in milk and half and half; Add nutmeg, broccoli, salt and pepper.
Reduce heat to low, cover pot and simmer for 20 minutes, or until the broccoli is tender.
Use an immersion blender or standard blender to puree the soup to your liking.
Stir in ham and cheese, allowing cheese to melt.
If soup is too thick, add chicken broth to thin it to your liking.