I'm trying to understand if it is only fuel efficiency that makes us use gravity assist, or we don't have enough rocket fuel in an average spacecraft to reach farther ends of solar system. Also, is there some other reason why gravity assists are used?
New Horizons was launched on a direct escape trajectory, so in theory we can go anywhere in the Solar System, and beyond, without a gravity assist, except for very close to the Sun, which we do not have the fuel to do without such measures (At least, not in a reasonable amount of time.)
Gravity assists just make the process cheaper, and allow for heavier payloads. New Horizons was able to do so because it was very small, to send a larger payload would be difficult. It did a flyby of Jupiter, not because it was required, but because it allowed the spacecraft to get there a bit faster. And quite frankly, there's almost no reason to go to the Outer solar system without doing a flyby of Jupiter first, as the speed improvement is quite large. The main exception would be that it limits when you can launch the mission, but that isn't a huge factor typically.
You need to understand that "enough fuel" is an incredibly crucial matter in space travel. Spacecraft are subject to Tyranny of Rocket Equation.
In short, if you want to bring your spacecraft and use fuel, say, somewhere around Mars, you need to bring it there, using more fuel to accelerate it out of Earth's orbit. To have that fuel, in order, you need more fuel in the second stage. And to accelerate the extra fuel in the second stage (plus the fuel in Earth orbit, and fuel around Mars), you need a lot more fuel in the first stage.
How much? On launch, the fuel and launch stages mass to actual scientific payload for distant solar system missions oscillates around 98-99%. Extra kilogram of payload around Pluto can be several tons of fuel on the launchpad.
And that all converts to rocket size - and enormous costs.
Therefore, any techniques that can save mass later in the mission - especially fuel mass - are absolutely essential to the budget.
Gravity assists mean free acceleration. You can save many tons of fuel on launchpad, and just use a rocket that is smaller and cheaper by a couple hundred million dollars.
Any mass can be accelerated, and the higher mass of the body you're making a fly-by against, the more acceleration can be achieved. Keyword: fly-by. You can't just launch from Earth and do a gravity assist while in LEO. But you can depart into "deep space" on an elliptic orbit (using engines and precious fuel) and encounter Earth later, performing a gravity assist.
About anything in Solar System, except for the Moon can be reached with benefit from gravity assists - although to reach nearest planets (Mars, Venus) they are often skipped, because the only thing we can really beneficially perform a gravity assist against, while going there, is the Moon, and it's too light to make any significant difference - launching at the perfect time to take least fuel on a direct transfer will cost less than waiting for the Moon and the target planet to align, then using the gravity assist. Of course, if the Moon happens to be in the right alignment at the right time, the orbital dynamics people happily tackle the opportunity and perform the assist anyway.
Thing is, planets move on their own schedule, and a trajectory that encounters one without spending a lot of fuel takes time. Therefore flights that use gravity assists usually take longer than direct encounters, like Hohmann Transfer. But they are significantly less expensive, and really, the savings go into many, many millions dollars.
Have a look at the trajectory of Rosetta. It performed 4 gravity assists and took 12 years to reach its destination. But it did reach the destination and sent good science. Probably if it just flew there directly, without all these assists, it would have taken some 4 years. But it couldn't, because that would about double the mission costs, and such money just isn't there.