Pour the beans into a large dutch oven and sort through them, removing any dirt, debris, or bad beans. Fill the pot with enough cold water to cover the beans by 2 inches. Cover the dutch oven with a lid, and let the beans soak overnight (8 hours).
After the beans have finished soaking, drain them through a colander to remove the excess water, and dry the pot.
Heat the dutch oven over medium heat. Once hot, add the butter and let it melt. Once the butter has melted, add the diced onion and cook until translucent (about 5 minutes). Add in the minced garlic, thyme, and parsley, and saute until aromatic (about 1 minute).
Add the beans and ham to the dutch oven. Sprinkle in the salt and pepper. Pour in the chicken broth and water (see notes)*, then stir together.
Turn the heat to high and bring to a boil. Once boiling, turn the heat back down to low and simmer, covered, for 3-6 hours. (The time depends on how soft and creamy you like the texture to be. I like them really creamy, so I cook them for 6 hours.)**
