1. Heat oil in a large stockpot over medium-high heat. Add onion and cook until softened, 6-7 minutes. Add garlic and cook 1 minute. Add beef and cook, breaking up with a spoon, until just cooked through, 5 minutes. Add cocoa, chili powder, cumin, chipotle powder, salt, pepper, and crushed red pepper, and cook for 1 minute until fragrant. Add bell peppers, tomatoes, and beans, and bring to a boil. Cover, reduce heat, and simmer until liquid is absorbed, 40-45 minutes.
2. Divide among 6 bowls and garnish with cilantro, onion, and sour cream, if desired.