A) You'll have to check with your ISP. You'll probably need to buy a business account. Most ISP's (all that I know of) block the ports commonly used for a webserver (especially the HTTP ports). So, expect to pay an extra $30-50 a month on your broadband bill.

B) You'll need a computer, any computer will do. You don't need a super fast system if you're just serving a website or ftp server. If you've got a 800Mhz+ machine laying around that will probably work.

C) You need to set it up to be a server. That means getting a good firewall either software or hardware. I suggest you setup a linux machine using Apache (server software). Redhat would be a decent distro to go for if you're not familiar with linux. If you had a choice though, I'd go with SuSE, Slackware, or even FreeBSD.

Apache is free for linux, and i believe the have a free windows version as well if you can't handle linux. Apache will actually do all the work as far as turning your desktop computer into a server. Google "apache webserver" and read all the instructional material you can find. It's actually pretty simple. After that it's all just setting up your firewall to allow access on the ports you want exposed and closing the ports you don't want open. It's not that hard, but it is dangerous. you're basically openning that computer up to attacks.