I suppose that all depends on what you want to do with the pi. This thread over on the RPF's forum
gives some great advice for getting rid of the GUI.
If you don't want to get rid of the GUI then at the very least running
to see all your packages and then removing them one at a time (which I admit is painstakingly slow) will help the most. For instance do you need both vi and nano? Do you care about scratch and ruby? Even without removing the GUI there's probably(and this is a very rough guess) about 500MB worth of stuff one could remove in packages that are nice but duplicated in functions (like vi and nano)