If I was going to set out the guidelines, I'd say that to be an antihero, the character would either have to be a good guy who does bad things or a bad guy who does good things.
I don't think you can get away with little character flaws or perks, they sort of have to flit back and forth between doing what's right and doing what's wrong. For instance, no offense to Fireplay, but I'd say that being a womanizer, partier and basic ego-maniac don't really make Ironman an anti-hero. If you're looking for a superhero anti-hero I'd say Rorschach's the best example, because even though he fights crime and saves the world from the bad guys, he also kills the criminals, tortures random people for information and doesn't have any problems hurting or killing any policemen that get in his way.
Some more examples of anti-heroes:
Fagin from Oliver Twist: He's a shameless thief who exploits young boys and works for one of the nastiest guys in London... But then he also looks after the boys and is just generally a nice guy.
Phantom from Phantom of the Opera: Yeah, he kills people and shit, but he really, really loves that Christine, and in the end he lets her leave him to be with another man because ultimately, he values her happiness over his own.
Heathcliff from Wuthering Heights: You could argue that he's a villain, but he actually starts off the book as quite likeable, and at the beginning, the readers really want him to marry the girl he loves and have a good life. Of course, that doesn't happen, and Heathcliff becomes more and more of a jerk as the book goes on, pretty much crossing the line into full-blown villain. I suppose the only thing that makes him an antihero is that all the bad things he does, he does out of crazy, mad, obsessive love, so... I guess that makes it okay? 
Darth Vader from Starwars: Again, arguably a villain since he's a bad guy for most of the first 3 films (and just a whiny little bitch in the prequels) but then he redeems himself at the end of the third film by killing the bad guy and saving his son, so I'd that that makes him anti-villain worthy.
Jack Sparrow from POTC: Well, he's a bloody pirate. He's greedy and selfish and he has one of my favorite anti-hero quotes. "There will come a moment when you have the chance to do the right thing." "I love those moments... I like to wave at them as they pass by." And in the end, he usually does do the right thing... But not before running away, leaving all his friends to die and taking a decent while to think it over.
Jamie Lannister from Game of Thrones: George R. R. Martin is probably the only writer in the world who can take a character who starts the book by committing incest with his sister and then pushing a small child out of a window to die, and make him likeable. Despite the whole incest/child murder thing, he's actually a pretty honorable guy... No, really! He fights to protect his family, he defends women's honor, he doesn't like to see pointless injustice and he actually acknowledges what a jerk he is... Which kind of makes him less of a jerk? I dunno, my logic.
Alucard from Hellsing/Hellsing Ultimate: This guy would be the cruellest, most heartless, sadistic, blood-thirtsy, irredeemably evil villain you could possibly imagine. Except for one thing... He just happens to be fighting for the good guys. Funny, the guy's not a hero at all, he's actually pure evil, but despite his love of fighting and killing and blood splattering everywhere and shit, the fact that he's fighting for the good guys means that he's not a villain. I suppose his only redeeming quality is that he seems to care about a handful of people, but that's not enough to make him an anti-hero. It's really just the fact that he fights for the good guys. So there's a really easy way to make an anti-hero. You can make them as sick, twisted and evil as you possibly want, but if they work for the good guys... Instant anti-hero 