Place beans in a large, heavy Dutch oven. Cover with 6 cups of water and pick out any beans that float to the surface. Let beans soak 6 hours or overnight. You can speed this process up by cooking the beans in boiling water for 1 or 2 minutes before letting them stand for 2 hours.
Drain the beans completely.
Cover the beans with 6 cups of fresh water. Add the lard or other fat, onion and epazote and heat slowly to a simmer over medium-low heat.
Once you reach a simmer, partly cover and cook for 1 to 2 hours, stirring occasionally. Add more hot water as necessary to keep beans submerged by 1/2 inch.
Season with salt, remove epazote and serve with rice.