Is that what you are looking for?
library(ggplot2)
x <- factor(rep(1:10, 100))
y <- rnorm(1000)
df <- data.frame(x=x, y=y)
ggplot(df, aes(x=x, y=y)) + 
geom_boxplot() + 
stat_summary(fun.y=mean, geom="line", aes(group=1))  + 
stat_summary(fun.y=mean, geom="point")
Update: 
Some clarification about setting group=1: I think that I found an explanation in Hadley Wickham's book "ggplot2: Elegant Graphics for Data Analysis". On page 51 he writes:
  Different groups on different layers.
  
  Sometimes we want to plot summaries
  based on different levels of
  aggregation. Different layers might
  have different group aesthetics, so
  that some display individual level
  data while others display summaries of
  larger groups. 
  
  Building on the previous example,
  suppose we want to add a single smooth
  line to the plot just created, based
  on the ages and heights of all the
  boys. If we use the same grouping for
  the smooth that we used for the line,
  we get the first plot in Figure 4.4.
  
  p + geom_smooth(aes(group = Subject),
  method="lm", se = F)
  
  This is not what we wanted; we have
  inadvertently added a smoothed line
  for each boy. This new layer needs a
  different group aesthetic, group = 1,
  so that the new line will be based on
  all the data, as shown in the second
  plot in the figure. The modified layer
  looks like this: 
  
  p + geom_smooth(aes(group = 1),
  method="lm", size = 2, se = F)
  
  [...] Using aes(group = 1) in the
  smooth layer fits a single line of
  best fit across all boys."