What is the best way to buy bitcoin for long term investment to sell for cash later?
Exchanges work by letting you both buy and sell bitcoin (see How can I withdraw dollars from Mt Gox?). That's who is doing both the buying and selling in most cases: people like you who got their starting bitcoins by buying them.

When you're looking long-term, you should consider the stability and reputation of where you store your bitcoins. MtGox and Coinbase are two options for exchanges you could use, but as the above-linked question states, getting USD out of MtGox isn't straightforward at the moment, while getting it out of Coinbase is (but nobody really knows what the legal status of these exchanges and Bitcoin will be in 5 years). To eliminate the possibility of someone else losing your bitcoins (or you losing access to your account), instead of keeping the bitcoins in the exchange, you could transfer them to a wallet of your own (especially if you decide to buy a more significant amount of bitcoins).

Then the onus is entirely on you: print the private key and keep it somewhere secure (a bank's secure deposit box would be perfect, but too expensive to just store $100 worth of bitcoin), or encrypt it and remember (or write down, and secure the paper) the password while putting the encrypted file on various drives and cloud storages, or whatever else you decide to do. Of course, this means that you might accidentally lose access to your bitcoins if you aren't careful.

You can decide which risk you're more willing to take. I think I'd do the following: Buy it on Coinbase and transfer it to an offline wallet. Secure that as mentioned above, then when you're ready to sell, transfer it back into Coinbase (or whatever exists then) and to your bank account.