In Mathematica, a palette is just a notebook with a collection of controls such as buttons. A uniquely powerful consequence of Mathematica's unified design is that a symbolic specification, easily built up by a program, can immediately be deployed as an active palette.
Palettes are like extensions of your keyboard. They can be used to perform many actions in Mathematica, including entering typesetting characters, styling notebooks, and performing evaluations. As with any notebook, creating palettes can be done with a menu item or programmatically.