Quality of ingredients is paramount, you can't make decent chilli from supermarket junk, has to be fresh, has to be quality.
In particular you need to get your spices from a proper spice merchant, often this is cheaper than the silly pots of stale flavourless junk you get in supermarkets as well.
Mine begins by cooking sliced onions and pureed garlic sweated under a low heat (and I do mean low heat) with a little salt for about 30 minutes until the natural sugars are all released (if you cook onions fast you will destroy the sugars, which we don't want).
About 5 minutes before the onions and peppers are ready brown some quality minced braising steak with a little oil in a frying pan.
Add the mince to the onion pan and in the frying pan fry off some diced yellow and green peppers, and your chillis of choice (I use finger and jalapeno, ghost chilli are better in a curry of course you could use it here). Fry a little and add those to the onion pan (the reason we don't fry them with the beef if because they are quite watery). Now turn up the heat to med-high.
Next comes the spices, whole cumin seed, ground cumin, paprika, ground dried chilli (most important, don't get commerical, it has no flavour, grind your own is best!), oregano, parsley and black pepper. Add to the pan and fry off well.
Note on tomatoes: When you buy tinned tomatoes and tomato puree, buy the good stuff, cheap stuff is bitter garbage, we don't want that.
Add about a tube of double concentrate tomato paste and fry off for about a minute on a good high heat followed by half a pint of stout or porter. Cook off the alcohol, we don't want a raw alcohol taste but a nice malty flavour.
Now add a 2 tins of whole plum tomatoes which have been passed through a sieve, don't use a blender or you'll blitz the seeds and the seeds are bitter. You can be lazy and use chopped tinned or passata, but I think the plum tomatoes sieved is better. Along with this add some high cocoa percentage dark chocolate and a tiny tiny amount of peanut butter.
Finally add a can of kidney beans, a can of black beans and a can of pinto beans. Don't wash or rinse, a little of the juice is good for the chilli.
Add and bring up to the boil for a few minutes, place in a crock pot and cook about 125 degrees for as many hours as you can stand (minimum of 4).
Tend to serve with fresh pressed tortillas, white rice, soured cream and cheddar on the side so people can do what they like. I prefer it plain with a little rice on the side and maybe a tortilla or two.