Update for September 2021
Since I wrote this answer, the case for having a portfolio site has diminished and being on a community site has increased. Personally I don't have one anymore as I currently don't need to rely on it.
The de facto way for web developer specific recruiters to find you today is through LinkedIn and they search by using relevant technologies keywords. So if you have a profile on LinkedIn, do make sure you have technologies you want to work with written down on your profile page so recruiters can find you.
While code exercises are quite common to gauge your coding skills you can still use Github or other code hosting sites, that lets you showcase your code, as they may be reviewed for technical interviews. It is meritorious to have contributed to open-source projects. Even as small contribution as adding issues or commenting on others issues and PRs as they can be seen as a proof for how well you communicate with others (don't be a jerk).
For senior developers and freelancers it might still be a good idea to have a portfolio site or a blog, for visibility and showing some amount of credibility. For this purpose you can keep continue reading the old answer:
Yes, you should create a portfolio site to showcase what you can do and what you've done.
But... why?
Say you want to hire someone. You really want to be sure that the guy really has the skills you want. Would you choose someone who claims he can do what is asked for, or someone who can demonstrate what he can do?
Clearly, someone who can show off his skills have larger merit. And the best way to do so is to showcase it in some kind of a portfolio with a list of accomplishments. At today's date, as a programmer, having a portfolio website is unique. Not a lot of programmers who apply for jobs have one and I've only seen a handful do it. Having one will definitely set you apart from anyone else, which is a good thing.
I wouldn't be surprised that one day portfolios among programmers will be as ubiquitous as for designers. I've seen designers sending in resumes without portfolios... and they really don't get any jobs.
Instead of making your portfolio pretty, focus on what to include in your portfolio. It can be as simple as a list of accomplished projects with associated skills and contact details. For a programmer it doesn't have to be more advanced than that.
Regarding design of your portfolio...
...you shouldn't really worry. You can always google for some simple free blog design and run with it. But if you want some practical design tips here are some:
Content
Figure first out what you want to show and convey it through your site structure. There are really two basic sections you will need: work
and about me
. Fill them up with relevant content.
If you find yourself thinking that some piece of information is useless then don't include it. It is simple as that.
Only include stuff that will be important for anyone getting a professional view of you. Answer stuff that is important to your prospective employer such as: What have you been doing lately? What benefits are there for hiring you? What are your special skills? What technologies are you proficient with?
Rely on communities
Don't be shy to use third party community sites to keep the data for you. In fact if you're into open source software and repositories it will become an advantage:
You can have your resume on sites such as LinkedIn or Stackoverflow Careers with the added benefit of making yourself visible to headhunters. Even if you're not actively looking for a job there are still some things you can do together with headhunters; such as giving tips about good colleagues who need jobs. It will pay off for you in the long run.
Your code can be showcased through Github, Bitbucket, Google Code etc. Knowing how to use version control is an important skill nowadays and using these sites is evidence that you can. If you're contributing to an open source project you can highlight what you've done in your portfolio site.
The thing about colors
If you don't feel comfortable using colors, just use grayscales instead. Professional web designers usually work with values first and tinker with hues later when they want to establish some kind of theme or a "feeling". Colors (or hues rather) don't really matter that much in a professional context.
The only mistake you can make with your choice of colors is that you use so many hues that they clash together. So if you want to play it safe then business is usually associated with blue hues. So stick with blue.
Long story short (tl;dr) just go with black and white. And blue if you're feeling adventurous, preferably when you're not color blind as well.
Screenshots
If you can, include relevant screenshots. They are an excellent way to give context on your work. Don't outright lie about what you've done. If you've only done work on the backend of things, please state so.
Be honest
NEVER ever outright lie about what you've done. It comes with such a huge risk that will permanently damage your reputation. Don't put stuff in to your portfolio that you never had any impact over, it is only a phone call away from getting yourself busted with disastrous consequences.
At one place I worked as a web dev on a fairly known website and we were called up as reference. A design bureau was using our site as reference for developing it. Unfortunately it was all done in-house without any involvement from anyone else. Dare I say that design bureau got busted?
More?
There is a blogpost by Tyler King that has some pointers on how to build your programmer portfolio. You can also try to google some of your favorite public facing programmers and see how they set their portfolio up.