What is a Mining Pool, what is it good for? What advantages / disadvantages does it offer over solo mining?
A Mining Pool is a protocol for a group of miners to work together, in order to smooth out their mined coins. A miner working alone would generate a block (= 50 Bitcoin) whenever he is the first to find a correct hash. In practice, this happens quite rarely for a single miner.

When several miners are working together in a pool, their earnings are split among all miners (with the pool usually taking some commission). This guarantees an even spread of earnings over time instead of "all or nothing" in solo mining.

One disadvantage of a mining pool is its centralicity - most pools today have central nodes that can be DDOSed, and if not configured accordingly when a DDOS happens the miner will just sit idly instead of reverting to a different pool or to solo mining.