Recently, we kept hearing commentators saying that stocks have gained so much ground, that it is possible for bonds to perform better than stocks in the future.
I believe this prediction is not likely to become true. Over the long run, stocks will over perform bonds to some degrees. The explaination can be found by looking at the relationship between gains and risk.
In general, the more risk an investment has, the higher potential gains are possible. Risk can be defined as the possibility to lose money. High risk implies you gain more money on average, but at the same time the chance for losing money is increased as well.
Traditionally speaking, bonds are safer than stocks. A 30 year treasury bond will yield constant dividend every 6 months, for 30 years. Compare this safety against a stock, it is clear a stock's value can drop to zero by by a company's bankruptcy.
All other things being equal, then an average bond must return less than an average stock.
You can increase bonds' return by increasing its risk. Junk bonds yields higher rate because the risks for default of payment is greater. I would personally stick with the safer treasury bonds in general. If you want a steady stream of income, then it has better be truly steady.