I accidentally sent a transaction without a miner's fee and I need it to clear as soon as possible. But, as far as I can tell it's going to take days if it goes through at all. Is there any way that I can pay a fee on top of what I've already sent?
Rebroadcasting a similar transaction with a fee attached will invalidate the one that's waiting. Basically you initiate a double-spend and the new one (with a fee) will get confirmed. Once it's confirmed, the old transaction will be invalid and forgotten.
Your client probably does not allow double-spend attempts, but it's possible via blockchain.info. Warning: Don't create a raw transaction unless you really know what you are doing!
People are working on making fee changes easier for us mere mortals; one example is/was (seems to be defunct) ConfirmNext.
It is impossible to modify a transaction after it has been broadcast to the network. However, it may be possible to replace it with a newer version.
If you're using Bitcoin Core, you can make it forget unconfirmed transactions by starting it with
After that, you generate a transaction that uses at least one of the inputs of the previous transactions, set a decent fee, and broadcast it to the network. As your transaction gets confirmed, the first one becomes invalid because it is trying to spend inputs that have been spent already.
If you don't know which inputs you've used, you may want to send all your money to yourself to prevent that you pay twice due to both transactions confirming.
The short answer is no but in theory you can with lots of mining power. Some miners may be generous enough to include your low/none fee transaction but lets ramp up the fun.
You can force a modified transaction into a block that you have mined. To do this you will have to beat the Bitcoin network, this is next to impossible with even thousands of dollars. So let's assume you are the owner of a pool and you mine a block, you are at liberty to add any transactions you want as long as it's following the Bitcoin protocol rules. You can easily modify transactions you and only you have made, there can only be one transaction using the unique Bitcoin so the other transaction will become invalid. Basically, modify transaction then insert it into a block, transmit it to network.
Just wanted to be the only person to answer "yes" in a way. Goatse's answer is perfect and probably fits you more.