I struggled with this myself when I was studying CS at CMU in the early '90s. I'm naturally a very ego-driven, arrogant person. I'm very much driven by other people appreciating me, liking me, and thinking that what I do is really cool or good. I think geeks, more than others, are like that. When we walk around with, say, a geeky t-shirt, or walking stick, or Doctor Who scarf, or some other affectation, what we're saying to the world is, "Look at me! I'm cool!" Even when we're socially introverted, once other people engage us we want so badly for them to think we're cool.
And the funny thing is that many of us geeks actually do have a lot of interesting, cool things about us (even if not the traditional "cool" of Fonzie, Mr. T, Dawson, etc.). I learned through a lot of self-examination (and a few very patient, non-geek girlfriends) that people gave me the reaction I wanted ("I like you, you are interesting, and I want to listen to you") much more often if I became less arrogant.
Here's what I had to do to become less arrogant. First, I had to stop arguing with people. I had a habit of arguing to completion, especially using pedantic arguments. With other geeks, this was great. With civilians, this really pissed them off and made me a very frustrating person to deal with. I would win an argument through logic and rhetoric, but then the person would never really talk to me again, or treat me poorly. I decided that I would rather lose the argument but win the friend. An interesting side-effect of that was that when I listened to other people—actually listened, not just waited for them to stop talking so I could make my next argument—I discovered that they often had something interesting to say. Sometimes they were even right, and I was wrong!
That was the second thing I had to learn: that sometimes I was wrong. This was a difficult thought for me, because I am so used to being right. But just like I didn't always ace every test in college, I also didn't always walk into every discussion knowing everything. The more I listened to other people, the more I realized that the world was more complicated and less obvious than I thought it was. I started to dismiss people less, even people who seemed stupid or wrong, because even if they only had one thing to say, they might still be good company—and if they liked interacting with me, they would give me more of that recognition from others that I craved (and, if I'm honest with myself, still crave today).
Finally, I had to recognize that social skills, like all other skills, improve with practice. I used put my foot in my mouth all the time: I'd say something that would commit me to a fact, idea, or opinion, often an extreme one (said very loudly), then I'd have trouble walking back from it. That would be really embarrassing, especially when it turned out what I said was something I didn't really want to say, or was wrong. Sometimes I would blurt something out that would bother me for days afterwards. It really helped when I started treating this like a skill to be improved. I tried to treat each of those things as a learning opportunity. What did I say wrong? How could I prevent myself from doing that in the future? Almost always, the answer turned out to be to qualify absolute statements with phrases like "I think" or "It might be true that" or "Maybe." Often, the answer would just be to keep my mouth shut for a few extra sentences and listen.
My interactions with others improved a lot after that, and my arrogance naturally started to deflate. It's amazing how much less arrogant we become once we start listening to other people, even people we assume at first are wrong because they disagree with us.
The biggest social skill improvement, for me, has been to recognize that other people really like being right as much as I do. When someone else said something that was right, I would grudgingly admit they were correct, then I would try to one-up them: "Yes, you're technically correct, but here's my idea which is so much better!" This came off as very arrogant, and made people dislike talking to me. Now, instead of trying to one-up, I will encourage the person: "Wow, you're right about that! That's pretty cool." Instead of making it about me, I'd make it about them. After all, in a conversation, it's only fair that it should be at least as much about the other person as it is about me, right? I've come to learn that the more I openly recognize that other people are right (when they are), the more they will reciprocate, and the better they will treat me.
Some of these things draw on basic facts of social psychology. One book I wish I'd read earlier is "Influence: The Psychology of Persuasion" by Robert Cialdini. It does a really good job of showing how people influence each other, and it gave me a lot of ideas of ways to improve my arrogance problems.
I hope this helps some fellow geeks!