In a large dutch oven, melt 2 tablespoons of butter. Saute celery, carrots, onion, and garlic for several minutes or until onion is translucent. Add the broth, water. Stir. Add in the ham hock and beans. Bring to a boil, cover, and reduce heat to medium low.
Cook until the ham hock is completely tender, about 1 1/2 – 2 hours. Turn off the heat and remove hocks. Shred meat and remove bones.
Slightly puree the soup with an immersion blender. You will want to make sure some vegetables and beans stay whole. Once you read desired thickness, add in 1/2 cup heavy cream.
Add the shredded ham hock back into the pot. Stir together and garnish with parsley. Enjoy.