Databases can be tough to size. CPU speed usually isn't key, but if it's a parallel work load, more cores is better. Lots of memory and fast disks are usually key. It's not uncommon to see 16 or 32GB of memory in a MySQL server now. Of course, that doesn't make a lot of sense if your data set is only 2 or 4GB.
If you can afford enough RAM to put your whole data set in memory (not ram disk, but having the database cache it), get that much RAM. This isn't necessarily a good long term strategy if you expect your data to grow substantially.
If your data size is larger than the amount of RAM you can afford, you can try to compensate with faster disks and using more smaller disks (8 x 74GB instead of 4x 136GB).
You can get some ideas about performance by taking hardware that you have now (assuming you don't have large servers kicking around) and running a scaled down benchmark with some sample data. That should give you an idea of where your bottlenecks are and where you need to spend more cash.
If you're working with a large vendor (Dell, HP, Sun, IBM, etc), you can ask if they'll send a demo unit with the specs your considering. That way, you can run your benchmarks before you buy the equipment.
And finally, if this is your first database server for the app and you have no idea if it's going to be successful, don't worry too much. If you start with a 'low end' server and your app is successful, you can easily forklift upgrade to a beefying server.