Is there some way to merge two wallets or to import/export addresses? I've got one wallet.dat from my laptop and another on my desktop, each containing various (different) receiving addresses that I use pretty often. I'd like to merge them into a single wallet.dat so I can see all my balances in one place.

If there isn't some piece of software that can truly "merge" the two, is there some way to at least export an address/keypair from one wallet and then import it into the other?
Pywallet is a python script that (among a number of other things) can export and import key pairs. It's not as complicated to use as it might sound, some python stuff has to be installed but that's almost automatic and once it is done the tasks can be performed using a web interface. From the linked forum post (updated 8/23/11):


  Currently you can:
  
  
  Dump your wallet, see your pubkeys, privkeys, their labels, etc
  Dump your transactions to a json file
  Import a key/address into your wallet, with a label, or as a
  reserve key
  Import a transaction into your wallet
  Import transactions from a json file
  Delete addresses from your wallet
  Delete transactions from your wallet
  Get info about a privkey, i.e. see address, base58 privkey,
  hexprivkey, pubkey and hash160, using the network you want
  Sign and verify string, files, and binary string
  Read a device to find deleted keys (CLI only)
  Print the balance of a bitcoin address, read from blockexplorer