Place the beans in a large colander and sort through them to remove and discard any stones or debris. Rinse them well and transfer them to a large bowl. Cover with 2 to 3 inches of water and discard any beans that float. Soak at room temperature for 8 hours or overnight. Drain and rinse.
In a large pot or Dutch oven, heat the oil over medium heat. Add the onion and sauté until soft, about 5 minutes. If you like spicy beans, add the jalapeño with the onion.
Stir in the cumin and then add the beans, water, oregano, salt, and several grinds of pepper and bring to a boil. Reduce the heat and simmer, uncovered, until the beans are tender. The timing will depend on the freshness of your beans. I like to check mine starting at 1 hour and every 15 minutes after that. Add more liquid to the pot, as needed, to keep the beans submerged. I like to cook my pinto beans until they’re starting to fall apart and the bean liquid around them has thickened.
Turn off the heat and stir in the lime juice. Season the beans to taste with more salt (I typically add ½ to 1 additional teaspoon), more pepper, and chili powder, if desired. Garnish with cilantro, if using. Store the beans in an airtight container in the fridge for up to 5 days, or freeze them for up to 3 months.