One way to look at intelligence is to rename it as "concept-building". You can extrapolate from small things and put together the pieces to make a concept, and then put those concepts together to create even higher level concepts. As every semi-intelligent person knows, thought processes are a little more complicated than that, but it's a good place to start.
So the two things that it comes down to is gathering knowledge and then putting two and two together, or inferring things from that knowledge (and actually, this is how one type of AI called an Expert system works).
So when you're talking about gathering knowledge, you also run into a lot of little bastard problems, like how to represent that knowledge. How do we remember pictures, images and video? It's difficult to say how exactly we should do it for an AI, but people are making big progress in the area. And then you have to figure this out for every type of knowledge. This, of course, can be a classic case of human limitations affecting how we build our AI. There's a way to remedy this.. which I will come to in a minute.
When you talk about inference, you're talking about your core logic. Well, how does that work? How often are we supposed to revisit our knowledge and apply our logic to it? Maybe you've had this problem yourself: you find yourself having some bizarre belief and immediately change it once you realize, but before that you "believed" what you believed for a long time even after you may have acquired knowledge about it (I know this has happened to me, plenty of times actually). And moreover, humans aren't pure logic, but we are still really good at some things that pure logic machines aren't. So how do you take that into account? There are some ways around it, and it basically involves not doing things perfectly (think probabilistic instead of deterministic). Still, anything we do to build this thing will involve the imposition of our own limitations. But like I said before, we're not doomed.
You have to think back to one of the things that motivated AI to start. Sure we have this whole, what if we could have humans inside computers thing. But another way to look at it is that we have these programs that do exactly what we tell them to, down to the letter. Can you imagine if you had to do this with your kid? It's really annoying, so why not just let your kid learn instead of bothering you with everything all of the time like a little baby. So we want programs to learn. Well, learn what? It turns out that you have to do a lot of hard work to get it to learn a specific thing. But then you're in your chair one evening drinking coffee and you get this, like, totally meta idea: what if I can make my program learn how to learn? As in, what if it knows what it needs to learn without me telling it? Picture it like a baby learning how to talk. No one "tells" the baby how to speak English, he'll just pick up bits and pieces over a few years and put it together himself.
In the same way, we are developing tools for programs that can learn, and then learn how to learn, learn what to learn, and basically bootstrapping its own intelligence in that way. My impression has been that in most of AI, this hierarchical approach is what makes sense to everyone, but it's just been too hard. Deep learning, for instance, has been incredibly successful in applying this approach, and although there are lots of things that are still being designed by hand, its main attraction is that it does a lot of things that other AI techniques cannot do, and that is to learn what it thinks it should learn (in more technical terms, it's like really good Unsupervised learning). It's not impossible to imagine how we would develop methods to find out what the best ways to do the parts that are designed by hand automatically. Also, I think the human brain has some hierarchy to it, but you might want to ask someone like Paul King about that for details.
Anyway, an AI that's more intelligent than humans seems like a logical conclusion.