To soak beans: In a large bowl, cover beans with water by 2 inches and let soak for 8-10 hours (overnight) and drain. Alternatively, place beans in a large pot and cover with water. Bring to a boil and tightly cover pan with plastic wrap. Let sit for an hour.
In a large heavy pot, combine beans with ham hock, bay leaf and 12 cups of water. Bring to boil and reduce heat and simmer for 1 hour or until beans are just tender. Stir in onion, celery, carrot, potato and garlic. Simmer for another hour or until soup is very thick. Remove ham hock and strip off meat from bone, discarding the rind and fat. Stir meat into soup and season with salt and pepper. Stir in parsley and serve hot.