Recs.
Updated
TeamCity is a continuous integration solution written in Java from JetBrains. It is available in a hosted and a self-hosted version. See: Overview of key integrations and Top 8 Continuous Integration Tools.
SpecsUpdate
Pros
Pro Supports build chains
The user can easily compose dependencies between builds by adding snapshot and artifact dependencies, all on the one screen. All output of upstream builds is available to downstream builds. Triggering sets off the entire build chain and supports re-running of the portions of the chain that failed.
Pro Cross-platform build support
The fact that it is based on Java does not hinder TeamCity's ability to support different build environments. TeamCity in fact supports a large number of languages and tools for each of those languages (build runners and test frameworks).
Some of the languages/platforms that are supported include: Ruby, .NET, Java.
Cons
Con Passing version number
Although TeamCity provides an easy "Version labeling" option, it is hard to pass this version number to other build configurations, say from build A to build B. One way to do it is using a "Build-Chain" where a version project is the first in a build-chain shared by other projects.