Adding convincing dirt and grunge to any model requires multiple layers of shaders. I usually use three main layers, surface dirt, crevice dirt, and dust.
Surface dirt is just smudges and such that accumulates across the surface of an object. To create this just mix your normal shader for your material with a dirty shader using a grunge texture for the mix factor.
Note: Make sure the image texture you are using for a mask is set to non-color data.
Usually grunge doesn't accumulate evenly over an entire object, it likes to get caught and pile up in corners and crevices where it isn't easily brushed or blown away. To simulate this in Blender I will be using the brand-new pointiness input from the input > geometry node (so make sure you are using Blender 2.74 or later). You usually have to tweak it's output with a color ramp to get some better contrast, then just add it to the grunge mask you are already using.
Dust usually doesn't stick to an object very much, it just settles on the top. To get this effect I plug the normal output of a geometry node into a Seperate XYZ node, the Z output of this node will give how much the face is pointing upwards. Just use this output, multiplied by another grunge texture, as a mix factor for the dust shader.
Here's the final result: