weight of the internals, internal friction, amount of air and fuel that you can stuff in (higher you go the more difficult it gets), strength of internals.
if you could make all the internals of the engine lighter you could make the engine rev higher because there will be less tensile and compressive stress on the parts due to momentum. otherwise they will just rip themselfs apart, im sure youve seen horror stories/pictures of car that overrevved and something snapped and basically BOOM. making a certain part stronger would prevent this but remember the heavier something is the harder the engine must work to get it moving, basically defeating what your trying to do. if you can make it lighter and stronger... then your golden :icesangel.
also air and fuel can only be fed in so fast... once you get past a certain point the engine cannot feed itself efficiently enough and power will taper off the faster you go (will be getting less and less air+fuel). turbo, better valve surface + design, higher flowing injectors, and less restrictive intake solves this.
as the engine revs faster parts are rubbing against each other faster which equals more friction to overcome.
there is probably more things that other people can explain better than me
