An unbeatable hero is no fun to read about. That's why Superman was given Kryptonite, introduced way back in 1943 for the Superman radio drama. It took 6 years for it to cross over into the comics. Over time it has become the main point for anyone arguing about why Superman is a boring character.
Well, I say that any writer who can only challenge Superman with Kryptonite isn't doing his job, and any reader who thinks that it's the only way to hurt Superman is not looking hard enough. Superman has many weaknesses an enemy can exploit, from his love for humanity in general and Lois Lane in particular, to his sense of duty and the dark, haunting secret that, sometimes, even Superman can't save everyone. Sometimes, even the Man of Steel can be broken.
All great characters, heroes or not, have their weaknesses. These don't have to be glowing chunks of an exploded planet, either. This is why I prefer reading about characters who have friends and families rather than antisocial loner badasses. I love seeing characters try to do the right thing while at the same time trying to keep balance in their lives.
My MC, Nathan Shepherd, has several weaknesses which harry him throughout his story. He has friends who think he's losing his mind, a job he's in danger of losing, and he is torn between his fears, the sensible part of his brain telling him to walk away, and an instinct to help others. This is not to mention the fact that, at the start of my WIP, he is in no way able to stand against the creatures that confront him.
I think it's Nathan's indirect weaknesses, his loved ones and indecision, that are more compelling than the obvious "Kryptonite," the fact that he doesn't know how to fight the supernatural.