Its simple if you think about it. The difference is the return parameters, in C++, people like to write code like:
cout << myvariable << mytext << endl;
Which is only possible if the << overloads on the members return an ostream object. If you return void, you will get a compilation error when you write the above line. You return the ostream object so that you can chain << operators.