Weird joins coming up with subsurf
The artifacts you are talking about are results of a bad topology of your mesh. The subdivision modifier is very sensitive to your edge, vertex and loops placement. The mesh should be ideally all square faces (no triangles or ngons) and have similarly sized polygons around creases.

There is a lot on the internet about mesh topologies (examples etc.), search for "mesh topology" or "mesh edge flow". Here are some tutorials from CGcookie.

In your model you can start by removing ngons, having all quads, and spacing even edge-loops around your creases: