Heat the olive oil in a large pot or Dutch oven over medium heat.
Add the chopped onion and sauté until translucent, about 5 minutes.
Stir in the minced garlic and cook for an additional minute, being careful not to let it burn.
Add the ground beef (or turkey) to the pot, breaking it up with a wooden spoon. Cook until browned, about 7-10 minutes.
Stir in the chopped bell pepper, chili powder, cumin, paprika, and cayenne pepper (if using). Cook for 2-3 minutes until the spices are fragrant.
Pour in the diced tomatoes, kidney beans, black beans, and beef broth. Stir well to combine.
Bring the mixture to a boil, then reduce the heat to low and let it simmer, uncovered, for about 30 minutes. Stir occasionally to prevent sticking.
Taste the chili and season with salt and pepper as needed.
Serve in bowls, garnished with fresh cilantro and a dollop of sour cream if desired.