I think school, GCSEs and A levels just aren't suited to some kids - particularly those who learn through doing, rather than sitting still and listening. Our education system has an strong focus on academic study and exams, and many teenagers under-achieve because of it; really, they are being failed by a system which isn't offering them appropriate learning opportunities. It makes me really sad that for many, the failure of schools to meet their needs is twisted and presented as their failure: their self-confidence plummets, and there can be other problems too.
I'd say it's really essential for parents to recognise that if their child is under-achieving in GCSE or A level subjects, this does not necessarily mean that s/he stupid or lazy; it may mean the curriculum is not suitable for them. It's particularly important to ask yourself whether your child is a hands-on, practical 'do-er' and 'active learner'. If so, they are probably being let down by the system, rather than letting themselves (or you) down. Their already-damaged self-confidence will be further damaged if you respond as if it were their 'fault'. And really, self-confidence is much more important than exam results - to life in general as well as academic success.
FE colleges can be the answer for some. They are very used to 'picking up the pieces' and re-engaging young people who have been disengaged by school. They offer qualifications - particularly BTECs - which are rigorous and challenging, but much more practical, and suited to 'active' learners.
Stella, you can help your son best by supporting him to keep his self-belief. Help him see this as a challenge he can solve, rather than a situation that disempowers him. To be a successful learner, he must feel he has some control over his success. For a start, help him believe that if his teachers think he could get higher grades, then he must be bright. He may be feeling like a stupid failure ATM, and he can't succeed unless he believes he is clever enough to do it. Then, help him problem-solve: is he underachieving in maths because he's not working hard enough? Or because he's not interested? Or because he has missed some crucial info? Or because the teaching methods don't suit him? Each of these different issues has (a) different possible solution(s), which you can help him find: e.g. Work harder; practice study skills; do something different; find another course...
I also want to give you some hope, Stella. My own son underachieved badly in his GCSEs (in y8 he was predicted 10/11 A*-Bs; he got one B and 4 Cs). He them spent an awful year messing around feeling bad about himself, becoming more disengaged and getting into trouble. I worked hard to keep him on track and keep his self-esteem and sense of aspiration alive. Now, two years on, he is finishing a BTEC, predicted distinctions and merits, and applying to universities to do something he's really interested in. :) A lot of those other 'high achieving' kids are on a sausage-machine to university too, but don't actually know or care much about the courses they'll end up on. Ultimately, I feel like my son's chances of success are at least as good as theirs, despite his school disasters!