Rinse and pick through beans removing any small pebbles or debris. Transfer beans to a large pot and pour in enough water to cover by about 2". Cover the pot and let the beans soak overnight.
The next day, drain the beans and cover with the same amount of fresh water. Bring to a boil, then reduce heat to low, cover the pot, and let simmer for 1 hour. Drain beans, reserving liquid.
To Cook The Soaked Beans:In a large oven safe pot, Dutch oven or baking dish, combine soaked beans, 1 cup cooking liquid, onion, ketchup, brown sugar, molasses, salt, mustard, bay leaf, pepper and ham bone. Cover and bake at 300 degrees for 4-1/2 to 5 hours or until beans are very tender and sauce has thickened to desired consistency. Stir occasionally and add more of the reserved cooking liquid if needed during cooking time.
Remove ham bone to a cutting board and pull off any good meat with a fork and return it to the beans. Discard bone and fatty meat. Taste beans and season with additional salt and pepper, if needed.