I've always had great luck with BSE (Best Skins Ever). I've used them numerous times on my original, 3G, and Nexus One. I haven't gotten one for my 4 or 4S though. I've just been using the cheap ones that come with cases and I've actually been pretty happy with them. The trick is in the application.