The big advantage of cash games is, that they are so flexible. You can come and go, as you like, whereas with tournaments you are stuck with them, until you bust or win, which might be after 10 minutes or 9 hours. Not at all practical, if you came home from work, finished dinner and like to play some poker before going to sleep.
Cash games can also be said to be the most true form of poker, and typical cash stacks of 100 BB leave a lot of room for turn and river play. In tournaments on the other hand stacks tend to quickly get short taking away some complexity and leverage points. This can be an advantage for beginners though, since they are less prone to make mistakes like taking an overpair to far in a short stacked environment.
Cash games can also get a bit boring after a while, since its basically always the same. Tournaments offer more variation, because you have early, middle and late stage, changing stack sizes and a lot of strategic (ICM) considerations to make. And you have the excitement of a huge home-run potential, which cash games dont offer.
Tournaments can however also be frustrating, because big cashes are so far between, and so often you play for hours just only to bust before the money or before the final table and the really big prices. The chance of having a winning session is much higher with cash games, but losses can also be more catastrophic, especially if you go on tilt and dont use some kind of stop loss.
Players will tilt issues are a bit more protected in tournaments, and for net depositing players its more easy to make a poker budget, because they know in advance, exactly what a session is going to cost them. If you want to play a big 11$ sunday tournament on Stars, you can in principle just dig out your credit card, deposit 11$ and play. And if you dont cash, you do the same thing for your next session. You dont even need to have money permanently in your poker account.