As a GM should I put a different voice if, for instance, the NPC is an old sick man, or if it's a kid or even a member of the opposite sex? What advices can you give me to enrich NPC acting?
You can, but you can use other audio quirks too.
Quirks define an NPC or a character and if you are sufficiently gifted to be able to impersonate a libertarian communist monkey juggler's voice (or whatever is required) then go for it.
The problem is that more than likely unless you're a talented voice actor your array of voices you can do is likely to be very limited, so it ends up that all NPCs of a particular trope will end up sounding the same.
What I tend to do is choose a few special NPCs and give them a voice quirk, because it can also be a lot of work and effort (not to mention bad for the throat with all those gravely dwarves)
What you can use instead are catchphrases, tics, coughs, pauses, incorrect phrasing, mispronunciation, etc . These are adaptable and can give cues as to an NPCs origin and style without having to assume an actors pose to give vent to an auditory masterpiece. Moreover you can mix these up so that (for example) so that you could have something like:
Combine these two and if the players hear
"By the stone halls of Durkin, these boots are killing me."
They'll know just who this is likely to be.
As an example from my long running Rolemaster campaign I had a dwarf (who started as a Sergeant and ended up being the defacto leader of the nation) had a phrase,
"We slaughtered them."
All his stories would ramble on and on and on and always, always his punchline would be just that. The players lapped it up and from that one simple catchphrase the NPC really grew out to be a well known (and loved) NPC.
Here is what I try to get across when I speak for an NPC:
Can I convey their emotional state or attitude? This is useful. There's a lot more than just the words you say, there's the way you say it, and that says more about a character than anything. This tone doesn't require I change my voice in any way, I just need to communicate the attitude through it.
Do they speak quickly? Slowly? Thoughtfully? Are they polite? Rude? If it's alien/non-human things, do they speak in a weird pattern? (Had a thing with 3 faces repeat the words twice while the third face would scream "NO!"... etc.) Do they wheeze every 3-4 words? When do they pause? Do they raise their voice? Suddenly get real soft?
This works really well for conveying something about the character.
But I don't change my voice
I don't try to change my pitch for different genders, or add accents... all of that tends to go poorly, and being a person who's had to sit through more than enough games where I've seen people do really offensive "accents"... I've got no place for it.
The only time I'll emulate a voice is if it's something weird like a robot or a demon or such. Otherwise, if there's something notable about the voice, I try to describe it.
There are no rules for how to act or talk for NPC's and there shouldn't be any. This is because you are free to do whatever you want, and as such - you should explore what you like best. If it suits you and your players you could even use sock puppets. As long as it doesn't disrupt the flow of the game, I believe that any method that works is good to go.
Having said that, I have used different voices for my NPC's in some of my games and I find that there are clear advantages, but also disadvantages. I will give you these from my personal experience.
Separate the GM from the NPC
Using a voice lets the players easily differentiate between the NPC and the GM during the session. Often times this helps prevent misscomunication, where a player might have thought the NPC said something but it was actually the GM, or visa-versa - which can cause synchronization problems in the game.
Separate one NPC from another NPC
Sometimes, NPC's need to talk to each other, when you are not using voices it sounds either like you are mad and talking to yourself, or you stop every few words to say "and then X says", "and then Y says" - even worse when you have more NPC's talking. Using a different voice for each NPC cuts down on the time it takes to say what you have to say and it helps the players tell who is talking more clearly.
Instant NPC recognition
If there is an important NPC like a powerful enemy or ally that is recurring you sometimes don't even need to introduce the NPC if the voice you use is distinct enough - just speaking in the voice will instantly inform the players as to who is talking. This can be used for dramatic reveals, or for authoritative presence, or even for some magical effects.
Speaking cross gender, no matter how good you are - it will just always sound silly. Enough said.
Sometimes it will be you yourself, or sometimes a player - but there will be a voice, an accent, a speech pattern - something - that will cause the players to laugh. Maybe when you are voicing the dumb-ogre or the flamboyant Elven bard.
Those are my experiences with using voice in my games. I usually enjoyed it very much - and I tend to do a mixture of voicing important NPC's or NPC's that I want to add some more flair to, and just using my regular voice.
YES! Please do so! I enjoy doing so when I DM and my players seem to enjoy it as well. Cross-gender voice can be tough, but accents and particular structure of the sentence should be incorporated in DMing. (IMHO)
In this case, it's important to be consistent. For example, you decide to play all the dwarves with a spanish accent, note it down right below your DM screen. It's good to have a per-race characterisation of the various accents (better still, it you could use different languages for different races, but this is waaay too difficult :) ).
Here are some examples of how i make it which hopefully can be of some help:
Generally, for other accents, I listen to Uk comedians (Mock the week, Russel Howard's good news), as they tend to make quite an array of voices. Especially the latter, he always has some impersonation of an old lady, from which you could take for your old NPCs.
And as @inbar rose said, be prepared for laughter. It's tough to act, and many players will just react laughing. It's not bad, though, at least they're having fun.
Playing NPCs distinctively is something I've struggled with.
If you're able to pull off a unique voice, do it. But don't force it either. Personally this is something I've found extremely difficult. I can do an accent, but doing so uses up so much brain space I can't focus on the content of what the NPC has to say.
What I have found helpful is to recycle. I play in a lot of groups. My important NPCs in one group usually had a past life as a PC in a different group. If I've spent a year or three playing a character, I've almost definitely got mannerisms for him down to the point where they happen automatically without me thinking about them. I can pull this character out of nowhere and act him out appropriately without distracting me from GMing.
One trick I saw A great DM do to compensate for his limited ability to do voices was that every player would be required to voice NPCs. He had dialog cards (most of which were prepared before hand) which would be handed to the player who was responsible for voicing a that NPC. The card would have the character name, race and the line to be read. When a player was handed a card they would read the line with the appropriate voice and no one had to do more then three voices (PC,2xNPC).
So to answer your question yes, and if you can't - cheat.
These are all great answers. I would add, the advantage of doing a voice is primarily that you are speaking in first person. GMs and players alike benefit from avoiding third person like "My character says ..." or "the ogre says" or even "my character does this", et al, and simply say whatever it is you want to communicate in first person, as the pc/npc in question; "what you want to say" or "I do this". The voices are great, but so is your inflection, gesticulation and body language. This comes much more naturally in first person.