For the base, melt the butter in a saucepan, stir in the flour and cook for a few mins, stirring all the time. Now, using a whisk or spatula, carefully stir in the milk, a little at a time, making sure the sauce stays smooth. Bring the mixture to a simmer and cook for a couple of mins until it thickens – it will be very thick. Turn the heat right down and keep cooking for 5 mins, stirring often.
Meanwhile, heat the oil in a non-stick frying pan and fry all of the chicken in batches until it starts to colour lightly at the edges. Scoop out each batch of chicken and put it on a plate. Add the onion to the pan if you are using it, and cook over a low heat until soft. Add the chicken and any juices and the onion to the white sauce, fold it in and cook the mixture for a further 15 mins or until the chicken is cooked through. If you're making the base ahead of time, you can leave it to cool at this stage then freeze in an airtight container for up to a month. (Defrost fully before using in the next step.)
Heat oil in a pan, add the celery and leek, then fry them gently until completely soft. Stir in the chicken base and stock and bring the mixture to a simmer.
Add the sweetcorn and cook for 5 mins, then stir in the greens and cook for 1 min. Sprinkle over the chives and serve.