If you are a sophomore or junior in college right now, and you get a job offer doing (for example) Ruby on Rails, you will likely learn nothing in your final years of college that will help you with doing Ruby on Rails in that job.
But maybe the job will involve more than just a web frontend to a database. Maybe you will will need to optimize a solution somewhere, and you'll think, "Hey, I bet I could use simulated annealing for that". Or you'll think, "Hey, I could write a simple grammar to solve this just like the first problem in my compilers class". Or "I can simulate the system variance by convolving the individual component variances" and thus you'll be able to provision your system better. Or whatever.
Sure, you could have figured out how to do all of these by carefully reading wikipedia. But how would you have even known the right questions without having been exposed to the material?
And then, of course, there's that next job ten years from now, that isn't Ruby on Rails. It's something else, maybe even in a different problem domain altogether, where the Ruby on Rails expertise doesn't give you any advantage. Wouldn't it be nice to have a good solid grounding in a wider base of material?
Several times in my career, I've been brought in to tackle a problem that has been vexing other (and maybe even better) programmers, and I've said, "Well, I don't know much about it, but I think we could solve that problem using X", where X is algorithm or technique I learned in graduate school. It is great to be able to have those moments, and I know had I not gone to school (and gotten my MS) I would not have those insights.