Add the beans to a large container and fill it with water until it is covering the beans by about 4 inches. Cover and set aside at room temperature overnight or for up to 24 hours. Drain, and set aside.
Place the butter in a large pot over low heat and cook the onions for 30-40 minutes or until well caramelized. Stir often.
Next, add in the carrots, celery, and garlic and cook over low-medium heat for 4 to 5 minutes.
Deglaze with wine and cook it until there are only about 2 to 3 tablespoons of liquid left in the pot.
Add in the ham, ham bone, beans, chicken stock, parmesan rind, and thyme, cover with a lid and cook over low heat for 90-120 minutes stirring occasionally until beans are cooked and the soup is thickened naturally.
Finish by stirring in the vinegar, salt, and pepper, and serve.
Make-Ahead: While excellent to serve and eat as soon as it’s finished, you can make this recipe up to 2 to 3 days ahead of time, just reheat when ready to serve.
How to Reheat: Place your desired amount of soup into a small size pot and cook over low heat until hot. You can also place your desired amount of soup in a microwave-safe bowl and heat it in a microwave until hot.
How to Store: Cover and keep in the refrigerator for up to 6 days. It will freeze well covered for up to 3 months. Thaw in the refrigerator for 1 day before reheating.
You do not only have to use a leftover ham bone in this recipe. You can just use cut up ham or cut up ham with a ham hock for extra flavor. The bone will help add in quite a bit of flavor.
Substitute with canned beans if you do not have dried beans.
To accelerate the bean soaking process, cover the beans in boiling water, and let it sit for 1 hour before using.