If you want to use a mic at a distance away from you, but not pick up much ambient sound, your only option is pretty much a long shotgun mic. However, shotgun mics kinda suck for indoor enviroments due to room reflections, so it's not a very widely used option. In general, any mic positioned further away from you is going to pick up surrounding noise even if it's a (hyper|super)cardioid pattern, owing to the aforementioned reflections as well as simple sound physics. So, I doubt your microphone is /crap/, but rather that you just need a better way of using it.
One typical option for many is to get a windscreen, shock mount, and articulating or regular microphone stand, and place the microphone close to your mouth (a few inches away at most). This allows to turn down overall gain, and since your voice will hopefully at that point be the strongest source of sound, combined with a cardioid pickup pattern, should eliminate a good portion of the background noise.
Another still is to get a proper headset microphone, such as a Shure WH30XLR. Same effect - capsule near mouth, cardioid, etc. On a budget, what some have done is grab a computer headset mic like a Labtec LVA7330 and velcro/glue it to their headphones. The sound quality won't be as good as the more expensive options, but it is cheaper.
Don't bother with anything with an omnidirectional pickup pattern, even if it's a headset. Also if you do replace your currect mic (try making it work for your needs first) USB connected stuff is okay, but a cheap phantom powered xlr mixer with an xlr mic will give you far more flexibility.