Here is a link to the Gentoo Ebuild how to. I wish I could give you some general pointers but I'm not too ebuild savvy myself.
As for your second question, you could compile from source if you wanted to but I see no benefit in this unless portage does not contain the package you want. Why go through the hassle when you can simply 'emerge <package>' and portage will automagically do it for you?