Place peas in a large saucepan and add enough water to cover.
Soak overnight and drain (or, to reduce cooking time, bring the peas and water to a boil, boil 2 to 3 minutes, then turn off the heat and cover. Let stand 1 hour, then drain).
Add 2 quarts of water, the ham bone, onion, carrot, celery and garlic to the pot. Bring to a boil, then reduce the heat and simmer gently for about 1½ hours, or until the peas are tender.
Remove the bone from the soup, cut off the meat, dice and return to the soup.
Season to taste with salt and pepper.