In large 8-quart stock pot, over medium-high heat, heat olive oil. Add onions, carrots, green pepper; cook until tender and light brown, approximately 12 minutes.
Reduce heat to medium-low. Add garlic, red pepper flakes, and cumin; cook until fragrant, approximately 3 minutes.
Stir in beans with liquid, chicken broth, and diced tomatoes. Bring to a boil, reduce heat and simmer uncovered for 30 minutes.
To finish soup, puree a portion of the beans and vegetables. To do this using a blender, use a slotted spoon to transfer 1 1/2 cups beans and vegetables and add about 2 cups of broth from soup. Alternatively, use an immersion blender by transferring 1 1/2 cups beans and vegetables and 2 cups of broth to a medium sized bowl. Return puree to soup.
Stir in lime juice and reserved ham. Ladle into bowls and pass garnishes separately.