In a 4- to 6-quart pan over medium-low heat, melt butter. Add onion, celery, and garlic and stir frequently until vegetables are very soft but not brown, about 15 minutes. Stir in flour and cook 2 minutes, stirring constantly.
Add diced potato and chicken broth and stir over medium-high heat until boiling; reduce heat and simmer until potato pieces are very tender when pierced, about 20 minutes. Add the half-and-half and stir until hot. Add white pepper and salt to taste.