Buildbot is a software tool written in python. As a result, it inherits many of the python advantages, namely readability and simple syntax. Furthermore, the core conceptual paradigm of the software is simple and well-documented.
In my experience, the software scaled quite well. We had many more than 30 svn repos attached to a single buildbot instance, with continuous integration across suites of regression tests upon check in. This is critical for an effective CI suite, as it encourages extensive regression testing across a variety of environments, releases, etc.
Finally, as buildbot's dependencies are python and twisted, it is quick and easy to install.
The greatest weakness of buildbot I encountered was the difficulty in debugging the configuration files. While there is a script provided that can provide an accurate yay/nay on if the configuration file will result in a successful run, in practice the error messages it provided did not help greatly in finding the location of syntax errors.
The other issue I had was with adding remote buildslaves. In principle, buildslaves on different machines/architectures can be added so long as they can remotely connect to the buildmaster. This is quite useful for CI across an array of environments. In practice, it was challenging and very error-prone to set this up correctly.
Our use was for scientific software applications, principally with high performance computing. The codebases were typically on the order of 10k -- 100k SLOC, in Python, C/C++ or Fortran. These libraries had complicated dependency chains, often requiring a build to be linked against ten or more software libraries.