I have used GMPCS on several ocassions and I will admit that I've found that they can really add to the experience. However I have made myself a few rules which govern how I play these npcs.
1) They are not the heroes of the story. 
They are never recognized as such. They assistants, guides and support for the players.
2) Their role must not overlap with a player character. 
If the group has an arcane caster then they don't need me throwing a second one in. This is the mechanical corollary to point 1. 
3) They cannot be the face of the party. 
In the unlikely event that they have social skills they do not use them, I am not here to play with myself.
4)They guide but do not steer.
With a gmpc I have a voice in the party whom the party trust. Through this I can make suggestions providing it is in character. The dmnpc will never object to whatever the party majority decides to do. EVER.
5)They consume no resources.
They will not take treasure rewards nor will they require purchase of consumables. If the party has stretched resources the gmpc shall be poor, if everyone is fully stocked on consumables so are they. A pc should never give nor receive significant amounts of gold from this character.
6)They have a place and a purpose and then they leave.
Normally a GMPC is deployed by me into groups of less than 4 in order to shore up the numbers. When the 4th seat is filled the GMPC becomes an NPC and steps back. The GMPC always has a story reason to exist and a clearly defined goal, once fulfilled they retire and a new gmpc will emerge if still required.
7)They are optional and at players request.
I always ask smaller groups if they'd like to have a gmpc in order to give the group access to a more rounded set of tools. This allows players to be what they want without fear that their lack of a divine caster will be their doom.
8)They act as the players require in combat.
Whilst I dont normally pass the sheet over to the players the gmpc will follow direction in combat. This lets the players, as a team, strategize and plan without fear that I will have the gmpc misbehave for no real reason.
An example: In a certain AP my party had released an evil outsider from imprisonment in exchange for information. This information was provided as the outsider wanted the adventurers to succeed in order to vanquish those who imprisoned it.
Shortly after the party got TPK'd. Now this wasn't their fault entirely as we'd recently lost the 4th seat and they'd decided to soldier on without them. They didn't want a gmpc as...well... they got a lot of the npcs around them killed.
So I decided that this outsider would arrange their ressurection so they could continue playing. The players were having fun and we wanted the game to progress, but they needed a frontline figher.
Enter the DMPC.
I supplied the party with a dmpc figher whose life was sworn to the outsider for mysterious and unexplained reasons. The fighter explained they were now bound to ensure the parties success and follow every reasonable order given to them.
My players immensely enjoyed this as now they had a moral quandry and their debt to this outsider hanging over their head. Meanwhile I got to create and experience mid-level fighter play and very slowly develop this unique slice of story alongside the players.
DMPC's are wonderful things. Just remember that the focus should ALWAYS be your players and their characters.