Place rinsed beans into a large stock pot. Add water and bring to a boil. Boil gently for 2 minutes; remove from heat, cover and let stand for 1 hour.
Add ham bone, cubed ham, onion, salt, pepper and bay leaves. Bring to a boil; reduce heat, cover and simmer for 1 hour and 15 minutes or until beans are soft. Occasionally skim surface of soup while it is cooking.
Add carrots and celery, cook until tender. Remove ham bone, scrape any meat from bone and place back into soup and serve.