If it's actually at 100%, you've got a problem. You could fry an egg on your cpu :).
As above, you should find out what task is using all of those processes. With 3-4 million page views a month, that's say 100000 pages a day. Figure 10 pages per view and you're looking at 10,000 visitors a day. Not sure about a windows box, but that type of load on my linux server uses only a small amount of resources on similiar hardware.
My first guesses at places to look: - you're getting hammered by some email process. this isn't likely, but sometimes email attacks can play havoc for a little while - you've got some knarly mysql processes going on. If you've got some rough coding that's not done right, database calls can add up *fast*. And if that's the case, cleaning up the code will work.
I don't think you need new hardware yet. That level of platform should easily handle a large amount of webhosting.
Is it normal for web servers to run at 100 % cpu load
Not a Linux server, they shouldn't exceed about 5% - if they do you've got problems!
In any event it sounds like too many concurrent "jobs" running, this could be that searches or whatever are taking too long to finish, and as someone else suggested, you may need to address the question of your indices.