I am trying to use the subdivide tool, but when I do it only works on certain faces. The next time I try to subdivide a face, it only adds vertices to the edge.
I'm not sure but I think you may be referring to the Loop Cut tool. You press Ctrl+R to use the Loop Cut tool.
To subdivide a certain face, select the face in Edit mode and press W and select Subdivide. Then in the Toolshelf in the lower left Last Operator panel on the screen you can change the number of subdivisions. The maximum is 10 but if you need more you will have to subdivide again or you can type value manually.