The cheapest answer is do what I do

Grab yourself a bunch of USB extension cords, and run your USB receiver out your bedroom door and closer to the router.
Seriously though I've tried three different routers, and switched from a "G" wireless receiver to an "N" type. Nothing has really helped with the poor performance round here. Even a receiver with a large aerial on the back of my PC. Must be something in these old walls slowing down the signal. So I've had to run extension cords to get my receiver closer to the router. As soon as I get it out of this room I am in, and closer, I get 150mb/s. Without it, I would be lucky to get a 30mb/s connection to the router. (note if you get a "N" model router you will get up to 150mb/s with an "N" compatible wireless adapter, BUT, as the signal quality degrades, so does that speed)
Currently I use the Orcon genius router.
But did you know, if you wanted to run a
network cable from your router with in the internet incoming, to another wireless router, (perhaps down the other end of the house) you can then connect to that other wireless "bubble" (to extend the range). So maybe keep your old router for the other end of the house?

Good luck!
EDIT in bold