How to choose the most profitable pool? Say I have a moderate amount of hashing power and I want to maximize my profit by using the pool that would give the best rewards for mining with them, what should I look at when choosing a pool?
Mining is a zero sum game so pool size has no effect other than to reduce variance not average payout.  Your goal would be to acheive 100% of fair value per share.

Some factors:


Inclusion of block fees.  While small pools which keep block fees
result in lower payout than solo mining.
Merged mining.  Currently adds a roughly 5% bonus relative to BTC only mining.
Hop proof reward algorithm.  Proportional pools are vulnerable to pool hopping.  As mining is a zero sum game anything pool hopper's gain 24/7 miners lose.
Pool fees.  Any fee paid to pool reduces revenue per share relative to solo mining.
Pool efficiency.  This one is tough because pool source code is often closed source.  If pool has a bug which results in extra 1% stale shares then that in effect is a 1% hidden fee.
Pool uptime.  A pool with 0.5% downtime is in effect costing you a 0.5% fee.  This can be partially mitigated by using miner which supports backup server.
Pool latency.  The slower communication is between you and pool
server the greater percentage of shares which will be lost as stale
in a block change.  Part of this is due to server resource
limitations but some of this also comes from geo-location.  If your
miners are located in China a pool which only has a server on East
Coast US ISP is going to have a longer than average latency.


So the most efficient pool would be one that includes transactions fee, charges no pool fee, has low latency connection to your miners, offers merged mining, has high uptime, and has no hidden back end bugs which reduce efficiency of shares.