Combine the beans, garlic, onion, and bay leaves in a medium pot. Add enough water to reach about 1 1/2 inches over the beans. Bring to a boil over medium-high heat. Reduce the heat, cover, and simmer until the beans are tender, about 2 hours. Add more water if the beans are absorbing too much liquid. The beans should be soupy when done, with plenty of liquid remaining. Season the beans with salt and pepper, to taste.
Ladle the beans and cooking liquid into soup bowls and garnish with Mexican crema, cilantro and chopped white onions. Alternatively, the beans can be drained and use as a filling for soft tacos.
Beans can be prepared 5 days ahead. Cool, cover and refrigerate. Bring to a boil before serving.