My apartment is long and thin. Living areas at one end. Study at the other. Kitchen is in the middle. Thick walls and white goods seem happy to soak up any signal I try to pass from one end of the apartment to the other. On top of that, overlooking the city seems to mean being bombarded by everybody's radio interference.
The upshot of all this, getting WiFi to cover my entire apartment has been a constant battle, one that I've had to solve with no less than five different wireless devices creating three different networks, two in the 2.4GHz band and one up in heady 5GHz-land. Even with all these electromagnetic waves slowly frying Donna’s and my brains, the signal is still pretty dodgy on occasion.
Tonight we were walking home across the harbour bridge and Donna challenged me to look up the origin of the term “Dorothy Dixer”, Australian political slang for a pre-arranged softball question from one minister to another from the same party. I pulled out my iPhone, and had got the answer from Google before I thought “Hey, wait a minute. Why does the phone say I'm on WiFi when I should be on 3G?”
Lo and behold, I checked my settings and I was connected to one of my own 802.11g networks. A few more metres walking down the bridge and I was back on 3G, the magical line-of-sight to my router broken by the Western corner of my apartment block.

So, in summary:
Places my WiFi signal can not reach: five metres away at the other end of my own apartment.
Places my WiFi signal can reach: three quarters of the way across the sodding harbour bridge.
I have a similar problem - living in an old mansion block flat in London. Kitchen and living room at opposite ends of the flat and there is no way a single wifi access point can cover both. Using a pair of SONY RF headphones to listen to telly = nothing but white noise in the kitchen all of 4 meters away, but a clear signal walking down to the shops....
Try turning down the power setting on your router. Sometimes, if it is set to too much power, the signal will start reflecting off of stuff (kind of like old TV if you lived next to a water tower) making a dead spot where it won't work. If you turn the power down, the reflected part won't be powerful enough to cause much trouble.
Ah, 2.4/5.8 propagation - dealing with this at home right now.
Office with my equipment rack is on the extreme north end of the house, the master bedroom is on the extreme south. 7 walls, a large microwave oven, and 2 shower stalls do a nice job blocking line of sight directly from my side of the bed to the AP.
Currently have 2 WRT54GS's running OpenWRT, and considering taking one of them and making it a repeater. Only problems are I can't find any place in our living space to plug it in and hide it that my wife approves of, and I don't want to remove the second WRT from it's current duty - providing guest access to the Internet. I may love my friends and family, but they don't get direct access to my LAN segment from their poorly maintained laptops. :)
Then again, maybe this is all just a sign that I shouldn't be using my laptop in bed. Meh.
Letting aside the fact that the other side of the bed should be more interesting than your laptop, I would suggest using a directional antenna.
If you are receiving a good signal from that bridge far away it means that you're wasting a lot of energy. A 12 - 15 dBi panel antenna would surely help.
Of course if there are many walls, consider seriously hiding a repeater somewhere in the middle.
You can make a very effective directional antenna for
chips.
I'd also poach a less-used channel within the spectrum, KisMAC is a great application to find out which bands are oversubscribed.
If your routers are compatible with DD-WRT (or OpenWRT, though it's not NEARLY as user friendly) you might want to install it on them and set up repeaters. I'd think what would be best would be perhaps putting the main AP in the kitchen since that's the middle of it and putting repeaters on the two main sides. If that's not an option, you could use WDS or something and keep the main one where it needs to be.