Quoting from the creators of Lua:
Lua is a powerful, fast, lightweight, embeddable scripting language.
Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
You will find it used as a standalone language much like Perl, Tcl, or even Visual Basic. You will find it embedded as a configuration and scripting language in applications such as WireShark, the Awesome Window Manager, Adobe Lightroom, or World of Warcraft. You will find it used as an implementation language that glues core components together in many video games, Adobe Lightroom, and at least six other Adobe products. You will find it as the level scripting language and non-player character (aka AI) scripting language in the implementation of many video games. You will find it as the implementation language of many mobile apps on both iPhone and Android. In many cases, you would never know that Lua was there without noticing it mentioned in a credit screen, or in documentation of the configuration or scripting. A long list of uses is Where Lua Is Used, maintained by the Lua user community.
Personally, I use it to write test harnesses and control panels for the embedded devices that are my primary work. Using Lua together with a decent GUI toolkit, I can throw together a test harness faster than it would take otherwise, and the result is lightweight and relatively easy to deploy for other users.