Heat the olive oil in a large saucepan over medium-high heat. Add the onion, garlic and salt and pepper and cook for 5 minutes then add the chicken to brown on each side. Pour in the stock and raise the heat to high. When the mixture boils, lower the heat to medium-low, then cover and simmer.
Cook until the chicken is tender, about 30 minutes. Transfer the chicken to a platter, reserving the cooking liquid in the pot. When cool enough to handle, remove the skin from the chicken and discard. Cut or tear the chicken thighs into bite-size strips and discard the bones.
Place the potatoes in the pot with the leftover cooking liquid and turn the heat to medium. Cover and cook for about 5 minutes. Add the corn-on-the-cob, coriander and the spring onions. Simmer, covered, for 20 minutes, or until potatoes are tender, but not overcooked.
Remove the coriander and spring onions and return the chicken to the pot. Simmer a few minutes more until the chicken is warmed through. Ladle the soup into individual bowls and add the corn-on the cob, spring onions and avocado to the side and top with the coriander leaves.