It is my understanding that the spin tool uses the 3D cursor as the pivot point. Not sure what I do wrong. The blender file is here
You could also click on the vertex you want the object to spin around. Then SHIFT + S --> cursor to selected. And then use the spin tool
It is pretty simple. If you look at your scene from upwards you see it well:
Your silhuette / cross section / whatever you want to call it is offsetted on the Y axis. As spin pivots around the 3D cursor, you want it to look like this instead:
Now the results are as follows:
Also, for practicality's sake, I would encourage you to look into the screw modifier. It does the same thing as spin, but you can edit you cross section in real time. (These settings seem to work the best with your scene.)
Also, you have duplicate vertexes (the one selected, the second and third ones from up and the one at the boundary between the foot and the upper part of the glass). You can spot them when they break smoothing and by looking at the surrounding edges. If you select only one of the pair of vertexes as shown below, the edge starting from the other one (here the edge that goes down) doesen't get a gradient.
They can do all kinds of evil (though they may sometimes be used to guide subdivision). If you try smoothing the mesh in this scene, it looks weird. You can fix this by selecting all vertexes and doing W > Remove doubles. It looks like this when fixed:
I hope this helped.