"Cold Wallet" typically means that the private key was generated on an offline computer. You send to the address generated, but the private key is never on a computer that is online. This is to mitigate the risk from viruses/keyloggers/etc.
With Ethereum, you can also have a wallet that has a daily spend limit. (There is an example of this with the official Ethereum Wallet that has a M-of-N bypass.) Depending on your level of paranoia, you may still want to keep the private key really secret, so it might still make sense to have the private key on a cold wallet. (Or maybe use M-of-N where one of the keys you have locked up in a safe for instance. Then you'd want that to be generated on a cold wallet.)
One way to cheaply have a cold wallet is to use a raspberry pi with the version of geth for ARM processors. (See the geth-ARM link.) I'd recommend using a standard distribution for the pi like raspbian. (But don't expect to actually be a full Ethereum node on the pi, it might have too small of memory.) Once you have geth on the pi, then you can just
geth account new, copy the public key (exactly), and send to that public key from an online computer. (And of course make extra backups of your keystore files.)
Is it really necessary?
Depends on your level of paranoia.