Rinse the beans and check for stones/debris, then add to a large bowl and cover with at least 4 inches of water. Soak overnight, at least 6 hours
Drain the beans and cover with 4 inches of fresh water. Add the onion, garlic, and bay leaves. Bring to a boil and cook for 10 minutes, then reduce heat to low and cover.
Lightly simmer the beans until tender, 1-2 hours depending on the size and age of the beans. Stir occasionally and add water if necessary. When the beans are tender, remove garlic and bay leaves and large onion pieces, and season to taste with salt & pepper