I used to be a programmer with no degree. I'd like to think I was pretty darn good at it... I knew several languages (C, C++, Python, Perl, Java, and several more) that I had taught myself. I did this for about 9 years, before I finally got a degree in CS, and then got a Master's in CS shortly afterward.
One thing this did for me is open up my mind quite a bit. I'm still a good programmer, but I now know programming isn't it. There's a lot more that goes on when it comes to developing good software, and though I could code up some pretty good stuff really quickly, now my code is better, more thought out, and most importantly, I am much more likely to ask the question "Is this really the problem we're trying to solve?" leading to actually useful code instead of neat stuff it turned out really wasn't what was needed.
In addition, I'm better at interacting with people. I used to have the attitude "This makes no sense to me, therefore it's stupid" and now I realize that maybe I don't have all of the information, there's something I don't know (this is key!) which would help me understand and realize my position isn't exactly right, and so I don't just get mad and storm off anymore when things don't make sense.
Getting a degree made me a more well rounded person... I found a love for history, music and literature that I didn't quite have before. I can have conversations that don't just involve the latest tech and video games. (though I still love talking about that stuff)
I guess my point is... a degree doesn't make a great programmer, but a degree can help make a better person (which is the whole point really... it's not to "learn a trade", it's to expand your horizons and explore the world and become a critical thinker) and so given the situation, I would likely lean toward hiring a great programmer with a degree over a great programmer without one.