Yield is used in sequence comprehensions. It is applied in combination with for-loop and writes a new element into the resulting sequence. Scala's for-loop comprehensions are syntactic for the composition of multiple operations with map, flatMap, and filter. Or foreach. Scala actually translates a for-expression into calls to those methods, so any class providing them, or a subset of them, can be used with for comprehensions
This : 
for(x <- c; if cond) yield {...} 
is translated on Scala 2.7 into
c.filter(x => cond).map(x => {...}) 
or, on Scala 2.8, into 
c.withFilter(x => cond).map(x => {...}) 
Simple example (from scala-lang)
/** Turn command line arguments to uppercase */
object Main {
  def main(args: Array[String]) {
    val res = for (a <- args) yield a.toUpperCase
    println("Arguments: " + res.toString)
  }
}