Put the beans in a large saucepan and add water until the beans are submerged beneath 3-4 inches of water.
Add the garlic and onion. Squeeze in juice from the orange halves, then throw in the juiced orange halves.
Cover the pan and place on a high heat until water starts to boil. Immediately uncover pot and reduce heat to a light simmer.
Cook until beans are completely tender, stirring occasionally. Usually this takes 1 to 2 hours.
Remove the orange and onion halves. Increase heat to medium heat and simmer, continuing to stir frequently. Stir until reduced to a thick, creamy sauce. This should take about 10 minutes.
Season to taste with salt. Serve over rice or with your choice of cilantro or hot sauce.