Sift through the beans and pick out any small rocks or debris that may be present. Cover the beans with water (at least 3 inches over beans) and let sit on the counter overnight.
Drain and rinse beans. Transfer beans to a large heavy-bottomed pot with a lid. Add onion, garlic, jalapeno, cilantro, and ham hock, if using. Add spices and broth if using and fill the pot with enough water to cover the beans by at least 2 inches.
Place lid on the pot and heat over medium-high heat. Boil beans for 1 minute, then turn heat to low and simmer 2-4 hours or until beans are tender.
Notes
*omit for vegetarian.**For slow cooker, follow directions as written, but add beans to your slow cooker instead of a pot on the stove. Cook on high about 3-4 hours or until tender.**For Instant Pot, add all ingredients to the pot of the Instant Pot. Close and lock lid and seal vent. Cook on high pressure for 25-20 minutes for unsoaked beans or 8-10 minutes for soaked beans. Let pressure release naturally before removing the lid.