In a Dutch oven or large pot over medium high heat, heat oil until shimmering. Add onion and cook until softened, about 5 minutes. Stir in garlic until fragrant, about 30 seconds.
Add beans, chipotle peppers and adobo sauce, cumin, oregano, and bay leaf. Add enough water to cover and stir to combine. Bring to a boil over medium high heat. Reduce heat and simmer until beans are tender, about 1 1/2 to 2 hours.
Remove from heat. Remove chipotle chilies if desired and bay leaf. Stir in lemon and lime juices, and season to taste with salt and pepper.
Olive oil: Chipotle uses rice bran oil, but olive oil is more widely available (and probably already in your pantry).
Black beans: To soak dried beans overnight, pick through and sort 1 pound of dried black beans. In a large bowl, add beans and enough water to cover by 1 inch. Soak at least 8 hours overnight. Drain and discard soaking liquid.
Oregano: Chipotle uses Mexican oregano, but you can use Italian oregano if that's all that you have. They have different flavors (Mexican oregano tastes more like marjoram) but both taste great in this recipe.
Yield: This recipe makes about 8 cups Chipotle black beans, enough for 16 (1/2 cup) servings.
Storage: Store leftovers covered in the refrigerator for up to 4 days.
Freezer: The beans can be cooled and packed in freezer-safe containers, labeled, and frozen for up to 3 months. Thaw overnight in the refrigerator.
Quick soak: If you forgot to soak your beans the night before, use this method to get a jump-start on cooking them.
Pick through and rinse 1 pound beans. To a large saucepan, add beans and enough liquid to cover them by 1 inch.
Bring beans to boil and cook for 2 minutes. Remove saucepan from heat, cover, and let beans sit for 1 hour. Drain and discard soaking liquid.