How does the standard client prioritize transactions?
The priority of a transaction is (the sum of (coin age in blocks * coin value in satoshis) over all the inputs in the transaction) divided by the size of the transaction in bytes.

Here's a random example transaction copied from http://bitcoincharts.com/bitcoin/txlist/:



It has 2 inputs (both of which have since been spent in other (confirmed) transactions rendering this transaction unconfirmable):


one for 0.1005 BTC from block 165774
one for 0.0995 BTC from block 165777


It is 439 bytes long, and has a priority of 432,232,688.

The most recent blocks in the blockchain is 175262 at the time of writing.

I sum the (age * values) for each transaction and divide by size.  The + 1 is because transactions confirmed in the newest block are considered to have an age of 1, not 0:

&gt;&gt;&gt; current_block = 175262
&gt;&gt;&gt; ((current_block - 165774 + 1) * 0.1005e8 +
     (current_block - 165777 + 1) * 0.0995e8) / 439
432232687.92710704


As you can see, the priority of a transaction will go up as new blocks are found.