Concurrency refers to things happening in some unspecified order. Multitasking - executing multiple programs by interleaving instructions via time slicing - is an good way to think about this sense of concurrency.
Concurrency is by definition multi-threading; but multi-threading is not necessarily concurrent.
Concurrency is basically the use of threads to attempt multiple tasks simultaneously, for example, you are modifying a database, while updating a GUI. etc. Threads are a specific example of concurrency.
Here's a visual example. Threads on a non-threaded machine:
-- -- --
>---- -- -- -- -- ---->>
Threads on a threaded machine:
The dashes represent executed code. As you can see, they both split up and execute separately, but the threaded machine can execute several separate pieces at once.