So what do I mean by things that are valuable but can't be bought? How do players get them? They earn them. Your game should have things that are earned by playing the game, preferably by playing it a lot.
How does that help? If players can buy everything the want, some of them will do exactly that... and then they will be done. They have it all, and they will shortly find that your game holds nothing more for them and they will quit. Sure, you got some money out of them - but these were your big spenders, your whales! You want them playing as long as possible so they'll keep giving you large sums of money. If they can buy everything right away, you'll lose them. You need some things they can't buy so they'll have a reason to keep playing.
Providing earned-only things also helps the non-paying player. This player needs to feel they can compete with the rich kid next door who buys everything. If there are cool things that must be earned, the non-paying player can feel good about earning them (sometimes ahead of some number of paying players). You are rewarding their loyalty and commitment to the game with a cool thing. This keeps them playing longer, and the longer they play the more time you have to convert them to a paying player. Also, if the things they can only earn are really cool, they will have increased feeling that this game is "worth it" and might change their mind about putting in money for that reason (instead of the reason of "I want X"). Do I also need to explain why you need non-paying players in your game, even if they never pay? I shouldn't need to, but here are two reasons: They tell paying players to come play, and they provide content (in any interactive game) for the paying players.
Needing earned-only things leads to the reasons why I believe two separate currencies is ideal in most free-to-play games. One currency for paid items, and the other for earned items. It is important that there is not any direct way of converting one to the other. Too many free-to-play games allow players to purchase the earned currency either directly or using the paid currency. That removes the main purpose of having separate currencies in the first place.
Dual currencies also leads to the third (and equally important) type of item for sale: the item sold for both currencies. Here's one of my favorite examples:
In League of Legends you can buy extra characters to play. The above image shows part of the store. We can see five characters for sale, each of which has two prices. The first price is in paid currency (the fist), and the second is in earned currency (swords). Obviously, your math should always work out so that the earned currency numbers are bigger, making purchasing feel efficient (compared to earning). Also note that some characters have the same paid price, but different earned prices, or vice versa (I think Garen was on sale at this time).
What does this do? Why is it so important to have two prices on these characters? It leads your players into the critical decision point of whether to spend money or not in a way that is most excellent for you. The player wants to own many, if not all of these characters (because your game design is good - a topic for another day). This player didn't plan on spending money, so they are trying to earn them all. They come to buy a character and they start calculating: "I earn 500 a day, so it takes me a week to unlock Shen, or two weeks for Malzahar. It's going to take me six months to get everyone I want... I can get there, so I don't have to pay, but if I just buy Malzahar now I'll save myself two weeks and be able to get Kennen that much faster." In addition, there are important items in this game that must only be earned. This also enters the player's thinking: "If I save 6300 earned currency now, I'll be able to get the Runes (those earned-only items) I need that much faster. I can't buy those, so perhaps I should buy the thing I can buy."
With this system of dual currencies, items that are earned-only and items that can be obtained in both ways (and proper pricing) you can lead players into this pattern of thinking, which increases the chance they will make their first purchase. They feel they could earn it all, but they know they don't have that much time, and they realize that time is money, and decide that your game is worth the monetary investment.
If the non-paying player in my story above felt the game was "only for rich kids" because everything was sold up front, for one currency, they would not have played it long enough to reach the purchasing decision point. If there were not ways to earn the valuable goods, and if there were not some earned-only items the player might not go through as many "pros" to making the purchase in their mind when they reach the decision point. Even for players willing to pay from the first day, these calculations are interesting and knowing they will earn some items and not have to pay for everything makes them happy, and more interested in your game.