first steps are always: Remove Doubles, Recalc Normals. Then look around the mesh in Object mode without modifiers on to see if you have any double edges (they will show up as wires even in Object mode).
But here another problem is you have a whopping non-planar Ngon, a polygon with more than 4 verts, for the side. The ngon isn't flat, if you look carefully it tapers away into the back-rest (visible on the bottom left view).
Ngons as best avoided with subsurf, and especially avoid using them on areas that are non-planar. Why avoid them? Because you have no control over the underlying triangles, the ngon has abstracted away the real geometry.
Under the hood the real geometry of that ngon might look something like this, and that is a problem for subsurf.
If you don't quite know what "planar" is, then imagine a sheet of paper, placed on a table. it is perfectly flat. now if you make one fold in it, and try to press it back into place - you know the fold will stay visible for a very long time, maybe forever. The sheet of paper has a discontinuity, the corner of that fold no longer lies on the same plane as the other corners. There will always be a bend. In geometry imagine something similar is happening when you join an edgeloop which isn't planar.
You need to guide your geometry at the back and maybe make an extra edge-loop. Fill this gap a different way. But exactly how depends a lot on the final shape you want.
assert some control over the underlying geometry of that side, and remove doubles, and you'll get reasonable results. adjust to taste of course.