What are the pros and cons of P2P mining pools? I've heard P2P mining pools are the answer to the current threat of mining pools controlling 51% of Bitcoin's hashing power.  Is this true or not true?  Does anyone have a supporting or critical assessment of P2P mining pools? What are the trade offs? Thanks in advance.
P2Pool allows individual miners to band together and find blocks with the reward being shared directly with the miners who participated in finding the block.  If you didn't contribute a pool share during a round, you wouldn't receive a payment for a block found by the round.  The pool has a lower difficulty than the network but greater than an individual miner.  That is, your miner can be submitting shares to the pool but you won't get a pool share unless one of your shares has a difficulty greater than the pool difficulty.  When somebody submits a share with a difficulty greater than the network difficulty, a block is found and everybody who contributed at least one pool share gets part of the reward.

So the trade-off is a high variance since you only get paid if you were participating at the time a block is found and you contributed a pool share.  And finding a block itself is highly variable since it depends on the total hash power of the pool (luck also plays a large role).

Depending on your hash power, you could run your own p2pool or join a p2pool set up by somebody else.  The advantage of joining a common p2pool is it increases your chance to contribute a pool share and thus share in the block reward.