I have spent a lot of time evaluating different options. Crafty is my favorite and the one I'm using for my current project. LimeJS is pretty good but it relies on the Closure framework, which I'm not a fan of. I also liked both EaselJS and CasualJS a lot.
btw one of the most "professional" options is Impact, so you should take a look at that one too. However it doesn't provide many of the features that the various open-source libraries do, and the features Impact provides that the other libraries don't aren't really that valuable. For example, if you need a physics engine for your game (and a platform game probably does) then you can easily integrate Box2D on your own. another Box2D link
That said, doing things from scratch without using a 3rd-party library is not a bad option. The free ebook Dive Into HTML5 does a great job of explaining how the Canvas element works. The thing is, there are a lot of graphics features that a good graphics library will provide that aren't built-in: a display heirarchy allowing Z-order and attaching objects to each other, animation through both tweening objects and spritesheets, mouse events so that you can click on objects, etc..
UPDATE: It's been over a year since I posted that answer and the situation has changed slightly (this is a nascent area of technology.) Although Crafty is still a great choice, in the past year EaselJS has picked up a lot of momentum (especially considering Adobe hopped on the EaselJS train.) I'm gonna switch to that tool for future projects (also note that it has a new website)
UPDATE 2:
EaselJS is still my favorite option, but another great option has cropped up: Phaser. I'm planning to explore this one in the near future.