Which run dialog
There's probably hundreds of equally valid answers for this, but I use gmrun:
Screenshot of gmrun
It has miscellaneous useful features:
You can run a command in a terminal using Ctrl+Enter
It keeps a history of commands, so you can just keep hitting Up to cycle through them, or search through them with the standard shell mechanisms, Ctrl+R and !.
It also has Tab-completion:
It will let you run a file directly (it knows what program to execute for that particular file type):
Personally I use gnome-do
for that kind of stuff. Yeah it's mono and some people don't like that, but if you enter a command. it runs it and when it's about running GUI applications it's a really quick way to trigger them. Since gnome-do has so many plugins, many of the actions I'd usually run via alt+F2 (like quickly mounting something) I can just do via gnome-do: I type "mo" and it already knows that I probably want to mount something and offers me the filesystems I have defined that I have not yet mounted (just as an example).
If you don't like mono there is an app called "kupfer" which does similar things written in Python, it just doesn't have all the features gnome-do has.
When I want to run "real" shell commands I tend to just open a terminal.
I had some success using bashrun. It's simple, has many features, and is very customizable.
a few screenshots: