Best: eBay, local game shops, local pawn shops
Amazon is good too, but most sellers don't provide any pictures. I'm not going to buy a game from you if I can't even see what it looks like. It should be a requirement from all sellers to provide at least one picture.
I've gotten lots of cool finds at local pawn shops, like Kirby's Return to Dreamland and Klonoa on Wii for only $5 each, both in great condition. The people who work at pawn shops normally don't do any research on what games they take in. The shop I frequent runs a policy that every "retro" game is only $5 and sometimes if they're having a good day they'll drop it down to $3 or $4.
Worst: GameStop
I think everyone on the planet shares this sentiment.
Here's some lovely stories from my local GameStop. Recently I went into the store to browse. I found a pre-owned copy of The Witcher 3 on PS4 which had lots of extra goodies including the slipcover, map, etc. It was also their only preowned copy. So I take it up to the register and check out, and after the guy rings it up and is taking my card he stashes the slipcover away below the counter and hands it back to me without it. I ask for it back and he says its "for display purposes". For what exactly? A new copy? A different game? There wasn't even a price sticker below the slipcover. Obviously someone traded it in the way it was sitting on the shelf. So frustrating. I almost wanted to say, "never mind, I don't want it anymore."
That same day they also forgot to put something I bought in the bag, which is fairly normal for them to be honest, however as I was walking out of the door he shouts at me to not forget the piece of paper he handed me that shows all upcoming releases, you know, the thing they use to shill pre-orders to every person within a one mile radius. Maybe you shouldn't forget to put something I already paid for in the bag. Really shows where their priorities are. I had to walk back in and get it 15 minutes later.
Just recently I went to pick up my preorder for Crash Team Racing (pretty much the only reason to go to GameStop anymore - their preorder bonuses). The lady behind the counter (she was sitting on the floor for some reason...) decided to give me my preorder bonus by chucking it on the counter. There's absolutely, 100%, NO reason to throw a collectible on the counter. Luckily, it wasn't broken but now the box has some scuffs.
Another time I found a preowned game there which had chunks of a Dorito slathered all over and under the manual and disc. Who knows how old that thing was. Disgusting. They could have at least cleaned it out before putting it on their shelf. They already have to open up the case to take the disc out, they definitely would have seen the mess inside.
I have more stories but I think those sum up the experience pretty well. I can't imagine a game store with worse service than GameStop.