Heh, interestingly the Columbia PHP Meetup just had Wez Furlong talk about Streams and PHP. If you really really want to know what streams are, I'd say you take a look at his PHP Streams - Lucky Dip presentation.
If you're wondering why I say you should see him, it's because he wrote the Streams code for PHP. It's on slide #2 😉
Quickly...
Streams are useful if you need data that isn't in your current script. Technically any [man]include/man or [man]require/man statement is a stream in itself. We don't think of it like that, but they are. [man]fopen/man and [man]fsockopen/man are two other stream functions to open a connection to another source.
Streams also allow you to modify what's sent, in a sense. You can send along extra headers, or send a specific set of content in an effort to get back something else; perhaps some login credentials or an authorization code.
You can also read what's being sent back kind of "as you go" and if you only want the headers, you can read through them and only keep the responses from the ones where you're getting a 200 OK or whatever back.
They're extremely useful in many scenarios, but there's not just one scenario where they'll be used. You can even create an aggregation type of system where you're using something like 5 different search engines to look up terms and get the responses back. Using [man]stream_select/man you can allow for your script to do something with the responses as they come in, rather than having to wait for all of them to finish.
I suggest you just peruse through the presentation. If you have questions about the slides, feel free to ask me (as I just sat through it on Wednesday). Anything I can't answer, I'll direct to Wez.