I've been looking into OCaml a bit, and it looks interesting. Here are two articles, one on either side of the debate (sorry haven't figured out embedded links):
Stevey on OCaml (pros) - http://steve.yegge.googlepages.com/ocaml
Steingold on Ocaml (cons) - http://www.podval.org/~sds/ocaml-sucks.html
Anyone here an OCaml hacker?
What it's great for is anything that involves the manipulation of lists or trees - one of my projects in OCaml was a simple computer algebra system, and OCaml was great for that. I had previously written a super-simple interpreter for a made-up programming language in Java, and in comparison OCaml is way more expressive for that type of project. I also wrote a fractal renderer in OCaml and found the expresivity helpful, although the library support was not great so I ended up writing my own bitmap library. It's also nice to be able to break out of the purely-functional paradigm, because there are times when a problem is better suited for imperative programming.
Another project I did in OCaml was a web proxy, and it turned out to not be a great idea. The libraries were confusing and in the end I wished I used python.
So it really comes down to the project. OCaml is very cool conceptually, and it is great for certain tasks, and not so great for others. (For what it's worth, I've only been using OCaml intermittently for about a year, so I am no expert.)