Mine are based off of what the Pokemon is or how it acts (and as a result, some of the nicknames are... kind of unoriginal? Childish?); also some nicknames carry on from one generation to the next as I catch the same kinds of Pokemon...
For example, here's Diamond's lineup:
Haunter (Taunter)
Torterra (Terrathus)
Alakazam (Lolren)
Gligar (Vladimir)
Gabite (Draconus)
One is based on Personality (Taunter), another on species-naming (Terrathus), one on random spoofing (Lolren), one based on mythos (Vladmir, Vlad Dracula/Vlad the Impaler), and the last based upon what animal the Pokemon is based from (Draconus, dragon)
Really, it all depends on what I'm in the mood to do. Some nicknames stuck through the generations (Haunter = Taunter), and some just come out of thin air. :B