Either soak the beans overnight or use my quick soak method.
Place dried beans in a Dutch oven or heavy pot and cover with water (add enough water to one inch more than the top of the beans.)
Once the beans have soaked overnight drain and rinse.
Heat oil in a Dutch oven over medium-low heat.
Add the leeks and cook for about 1 minute. Add garlic, carrots, and celery and cook 5 minutes longer.
Add ham hock, stocks, sage, and bay leaf.
Heat to boiling, reduce the heat and simmer, covered, occasionally stirring, over medium-low heat until the beans are tender, about 1 1/2 hours.
Remove from the heat and let cool slightly.
Discard the bay leaf. Remove the ham hocks and cut off the meat and chop it into pieces and set aside.
Remove about 4 cups of soup into a deep bowl puree with an immersion blender.
Then return to the soup pot.
Continue pureeing until about ¾ of the soup is pureed.