Warm oil in large saucepan or Dutch oven over medium-low heat. Add onion; cook 4 minutes, stirring. Push onion mixture to one side; add chicken to skillet; sprinkle mixture with chili powder, cumin, salt, and pepper. Cook 5 minutes, stirring.
Increase heat to medium-high. Add 2 cans of the beans and draining liquid, 1 ¼ cups broth, and chipotle; bring to a simmer. Cook 10 minutes, until chicken is cooked through.
Meanwhile, combine remaining 1 can beans and ¾ cup broth in bowl of food processor. Puree until smooth. Add to soup in pot, along with half-and-half. Simmer a few minutes, stirring, until warmed through and flavors incorporated. Serve hot; garnish with cheese and cilantro.