Take a screenshot of your new npc, make a 64 or 256 pixels square, per example and save at 32 bits. Check this thread for a state of the art explanation:
http://www.lucasforums.com/showthread.php?s=&threadid=128548&highlight=sv%F6sh).
Save your image as po_blahblah.tga
Then, go to the portrait.2da file and add a new row:
In the baseref column, type the name of your .tga file (po_blahblah) without the extension. Then, in the "appearance number", "appearance_f" and "appearance_s" colums, enter the row number of the appearance.2da file corresponding to the appearance of your npc. Race, normally it's 6 but check the "Race" field in your npc's .utc file just in case.
Save and close (before saving, just click on another row you'll loose your new row). Check the portrait.2da file in one of my recruitable mods to see how it's done.
Finally, open the utc file with GFF editor and in the field entitled portraitID, add the number of the row you just added to the portrait.2da file (per example 41).
Hope this helps :)