If you are not afraid of Linux, you can do all of this without buying a solution, but you will have to do some custom coding for the fax->email gateway.
I've also used Ring Central, Procomm and Microsoft Fax as a Desktop fax application. Eventually I just wrote my own so that I could have something a little more lightweight.
There are some good fax servers out on the market now. Like RightFax, or SatisFAXtion or FAXCOM. Most will do the fax->email and email->fax functions that you are looking for. Or you can use efax or jfax to do it over the Internet.
pansophic