Heat oil in a large heavy-bottomed nonreactive saucepot or Dutch oven mediun heat. When oil is shimmering, add the onions, bell pepper, garlic, chili powder, cumin, coriander, pepper flakes, oregano, and cayenne. (Dry seasonings are added at the beginning with the onions so the spices release their oils and the vegetables have enough time to absorb all the flavors.) Cook the mixture, stirring occasionally, until vegetables are softened and lightly colored, about 10 minutes. Increase heat to medium-high, add half the beef and lightly season with about 1/4 teaspoon salt. Cook, breaking up the meat with a wooden spoon, until no longer pink and just beginning to brown, roughly 4 to 5 minutes. Add remaining beef and lightly season again with about 1/4 teaspoon salt. Cook, breaking up the meat with a wooden spoon, until no longer pink, another 4 to 5 minutes. Add beans, tomatoes and their juices, tomato puree, and about 1/2 teaspoon salt. Bring to a boil, then reduce heat to low and simmer, covered, for 1 hour, stirring occasionally. Remove lid and continue to simmer for another hour, stirring occasionally, until meat is tender and chili is slightly thickened (if chili begins to stick to bottom of pot, stir in 1/2 cup water and continue to simmer). Taste and, if necessary, adjust seasoning with salt. Remove from heat and serve, or refrigerate, and serve the next day. To serve, ladle into bowls, and top with your favorite condiments. Makes about 8 to 10 servings. Slow Cooker: Cook vegetables and meat as directed above then add cooked meat mixture to a slow cooker; stir in the beans, diced tomates, tomato puree, about 1/2 teaspoon salt, and cook on the high setting for 4 hours.