Place potatoes, onions, and celery in a dutch oven or medium sauce pan. Season with salt and pepper. Add water to just cover vegetables.
Bring to a boil, lower heat to simmer on medium until potatoes are tender.
Add broccoli. Simmer on low heat for 2 minutes.
Slowly, stir in half and half. Simmer about 3 minutes on low heat, stirring frequently.
Whisk together the butter and flour in a small bowl. Add 2 tablespoons of the broth from soup. Whisk until smooth and stir mixture back into the soup.
Stir in the ham. Simmer for 5 minutes, stirring frequently. (If soup is too thick, add a little more half and half)
Stir in the cheese until blended. Remove from heat. Adjust seasonings if needed adding more salt or pepper.