Bells and whistles is a slang phrase used to describe fancy features provided by an application. Typically, the term refers to small features that are needed only in special cases or to features that make the program more visibly attractive (i.e., like real bells and whistles that are aimed at attracting your attention).
Depending on the author, the term can be used either favorably or negatively. Many users and critics, for example, lament the increasing addition of bells and whistles that, they feel, make an application harder to learn and use without providing commensurate new functionality.