In a large soup pot combine beans and 2 1/2 quarts water. Bring to a boil and cover and continue to boil for 2 mins. Remove from heat and allow to stand covered for 1 hr. Add ham bones/hocks onion and garlic and boil again for about 1 hr. Reduce heat and simmer for around 2 hrs. Add potatoes, celery and carrots. Allow to simmer for around 1 hr. more or longer as needed.
Remove bones from and dice up any extra meat you want to add and add to soup. Discard fat, this is always easier after its been refrigirated.