Being a good GM can get rather tricky sometimes; you have to play every single role that your players are not filling, build an entire world, remember all the rules, and come up with an interesting story to tell your players.
I, personally, rather enjoy it though. The first thing I learned when I started running games of my own is that if you have a carefully laid plan for your players, they will find a way to fuck it up. I find it easier to plan general goals for the players and let them figure out exactly what it's going to take to get from Point A to Point B. It's about 35% planning, 65% improvising. Let the world move around the players and react to them, not the other way around.
Knowing your players is equally as important as knowing what they can and can't do within the system and character creation rules you've assigned. Think back to when you create your characters - generally you have a concept in mind and you probably tend to get nearly all you can for the assigned points. Your players will do the same. You need to know their characters nearly as well as your players know them, so that you can set up challenges that they will be able to overcome with a bit of creative thinking. In my experience, my players(at least) tend to like to push their abilities and use every advantage they can come up with. Sure, there are things that I can't plan for, but that's where improvising comes in.
Speaking of improvising, some GMs like to fudge NPC die rolls a bit. I, personally, do this as well. Sometimes it will make the game more interesting. DON'T do this all the time, though. Letting the dice have their say is good as well. The main times when I fudge die rolls is when the players are interacting with an important NPC, whether socially or through combat, and their rolls would normally make the encounter much less challenging than I intended it to be. Occasionally taking down a major NPC with a few lucky die rolls may be okay, but if it happens often, they players are going to get bored. It can be very difficult to find the fine little area where an encounter is challenging, not too easy and not impossible.
Don't be afraid to tell your players "no." Most games have a section on this in the core rule book, but it's something that should be addressed as well. Set your rules for character creation and stick to them. If one player gets something outside of those rules, then the other players will want it as well, or they may very well start accusing the GM of favoritism. This could also upset the balance of the game as well.
Remember, as the GM, you have the final say in resolving everything. Don't be afraid to enforce it, but don't abuse it either. Sometimes you may have to tell your players "tough shit, that doesn't work" when they come up with some overly simplistic loophole for something, but they'll feel more accomplished after they've worked around it - usually. Sometimes your players may do bitchy things that you don't like, but remember the point of the game is to have fun and tell an interesting story - not stroke anyone's ego.
Every game has a theme of some sort. Superheros, fallen gods, vampires, werewolves, horror, action, anime stylings, and so forth. It's best to stick to these themes with whatever game you choose, because the rules in the books are geared specifically for that. If it's a horror game, don't be afraid to give the players a "no-win" situation. If it's a superhero game, don't be afraid to give them situations that may bring their morals into play. If you choose to break the theme of the game, have a good reason for it.
Don't railroad your players into where you want them to go. Set up situations and goals for them to achieve in the place where you want them so that they have a reason to be there. If they don't have a goal to achieve or the motivation to obtain this goal, then you're essentially shoving them into a car with no access to the driver's seat and they're just along for the ride.
Don't be afraid to narrate scenes where a lot of stuff happens. This is great for setting the mood and letting the players witness plot-centric events. Don't be afraid to let them interfere though, either. If there is a scene important to the plot and something must occure that I want the players to see and not mess with, I usually set up an obstacle in their way that will delay them JUST long enough for that to happen, and then whatever else may happen, will.
NPC's should be colorful and unique in their own ways. I'm not saying that you have to come up with an entire backstory for the convenience store clerk they're only going to see once and never learn the name of, but give him a brief, unique description. Small touches like that can bring a scene to life a lot more than leaving them out. Important NPCs should be given nearly as much attention as player characters though, giving them their own unique flair, background, and traits. This will let the players know that someone is important and perhaps even prompt interaction between the NPC and the players. This is something else you can use to your advantage.
I could probably go on with more GM tips and such, but I think I've carried on enough for now.
Feel free to drop me a PM or whatever if you'd like more advice on possibly GMing. I'd be happy to help you out.