In general, one key per identity should be fine.
One key can include:
- Several UIDs (for seperate mail addresses, ...)
- Several subkeys (for different devices, so you can put some subkey on your mobile, if it gets lost, revoke only this)
Advantages:
- Less hassle when signing keys, interacting with keyservers, cross signing your keys
- Less hassle maintaining your keys including moving to other computers, revocation certificates, ...
- Less hassle when actually using it
- Less polution: If somebody whats to use your public key, it's more easy to find the correct one as they're grouped in a semantic way. Imagine looking for a person's name and finding a dozen keys for all his different addresses in use, which to use for encryption?
On having multiple keys anyway
If you want to manage multiple IDs which shall not be connected directly (I can imagine a private one, one at your employer, one for stuff which may not contain your real name - I think of governmental pressure, ...), feel of course free to use multiple primary keys.
I strongly recommend Debian's document on subkeys for further reading.