Prepare all of the finely chopped vegetables, drain and rinse beans, and open cans of tomatoes prior to heating the stove.
Heat the olive oil in a large Dutch oven over medium-high heat. Add the minced onion, garlic, cilantro stems, and chili powder. Cook, stirring frequently until the vegetables start to soften, about 5-6 minutes.
Meanwhile, finely chop the chipotle chili until it forms a paste. Mix this with 1 teaspoon of adobo sauce and the tomato paste.
When the vegetables have softened add the tomato paste mixture to the pan, and cook, stirring constantly until it turns brick red in color and starts to stick to the bottom of the pan, about 2-3 minutes.
Add the fire-roasted tomatoes and their juices to the pan. Cook, stirring frequently until the tomatoes are cooked down and are slightly darker in color, about 6-8 minutes.
Add the drained and rinsed beans, the salt, and 5 cups of water to the pot. Bring to a boil over high heat then reduce to medium-low and simmer uncovered for 30-35 minutes. If desired, use the back of a spoon to mash about one-quarter of the beans against the side of the pot to create a thicker, creamier chili.
Squeeze in the juice of half a lime then taste for salt. Season accordingly and serve with desired toppings.