Put the chicken in a large pan with the whole and dried chillies, garlic, coriander stalks and cinnamon, cover with cold water, then set over a medium heat. When the liquid comes to the boil, reduce to a gentle simmer and cover with a lid. Cook for 30 mins, then turn off the heat and leave the chicken in the stock to cool for 20 mins.
Remove the chicken, strain the liquid into a large jug (you should have about 800ml) and discard the aromatics. Return the liquid to the pan and simmer until it has reduced to about 600ml, then pour back into the jug.
Heat 1 tbsp oil in the pan, add the onion and cook for 8-10 mins until soft and translucent, then stir in the spices, tomatoes and sugar. Add the chicken stock to the pan, season well and simmer with the lid ajar for 30 mins.
While the soup cooks, remove the skin from the chicken and finely shred the meat. Add to the soup along with the sweetcorn, beans, lime zest and juice to taste (save a little to toss through the avocado), and cook for 5 mins more.
Heat the remaining oil in a frying pan and add the tortilla pieces. Fry until golden and crispy, then drain on kitchen paper. Halve and peel the avocado, cut into small chunks and toss through the remaining lime juice. Serve the soup in bowls topped with the crispy tortillas, coriander leaves, sliced chilli, avocado and feta.