Before you even start creating an NPC you should first consider these three things:
1. Remember that no one gives a rats ass about your pet NPC's
That's right no one cares that Sir Fightsalot has an awesome back story and all sorts of cool skills and powers. As I said before, you will be lucky if your players remember your NPC name.
2. Speaking of names
Give your NPC's great names. There are many awesome name resources on the internet, so there is no excuse for creating lame ass names (except maybe ignorance). If you want the players to remember your NPC's they have to have great names... or really stupid ones.
3. The best NPC's evolve with the game
Leave room for the NPC to evolve with the game world and in the campaign. If you create everything all at once and the PC's don't care in any way about the NPC, the only thing you have succeeded in creating is wasted time.
Now you've considered the above and categorized the NPC you can start the creation process. I have always found the simple journalistic five W's (and one H) to be the best formula for the initial creation. You don't need much more than a few sentences for each, just enough information for the NPC to make sense.
Who - Who is this dude or dudette and whats their name?
What - What is their motivation and what part do they play in the campaign?
Where - Where are they from?
When - When did or does the NPC become relevant to the campaign?
Why - Why is the NPC relevant to the campaign?
How - How are you going to fit this character into the campaign?
You can expand and detail more as the NPC is used over the course of the game. As for stats, just write a bunch up one day when you're bored and assign them as needed. Thats it, simple down and dirty NPC creation.
How do you create NPC's for your campaigns?