Fluency in a language basically means you can converse at a normal pace with someone without those "um"s and "ah"s that accompany a basic speaker's level of conversation. When you get to the point where your words flow, like fluid, or fluently, you're there.
The best way to gain fluency in your target language is to learn to think in that language as soon as you can.
Let's take an example;
Let's say you're an English speaker and learning to speak French. If you are thinking in English while conversing in French then your speech will be peppered with those aforementioned interjections as you search for the French equivalent of the word or phrase in your head. If however, you are already thinking in French then you will already have a store of words and phrases just ready to trip off your tongue. Your speech will be fluid, it will have the proper rhythm to it, it will be more pleasing to the ear and more easily understood.
So how do you get thinking in your target language?
Here are a few pointers I would use;
Firstly, at the early language acquisition stage, don't just learn "stand-alone vocabulary", that is, don't just learn a word in isolation. Learn it with it's relevant definite article so you can easily recall it's gender (not relevant to all languages). Learn it in phrases where it would commonly be used. This gives you other vocabulary to surround the word with and also gives you a smooth sounding, readily available, practised phrase. It'll sound fluid since it has been learned and rehearsed as a "block" of language instead of individual words being forced together like the wrong pieces of a jigsaw.
Secondly, have internal conversations with yourself in your target language.
I don't mean go around having full blown arguments with yourself, nothing that will make people think you're crazy. Just turn the language over in your head and familiarise yourself with it, make it your own. Imagine situations at random where you'll need to express yourself and make yourself understood. Imagine any situation you could encounter in a foreign country; in a bank to change money, shopping, reporting a crime to police or just socialising. Think of the language you'd need to use, go over it and make up an imaginary conversation. See where it takes you and see if you can think of and build the phrases you need. When you can, you'll have some ready made phrases in your memory bank for whenever those situations might arise.
Another thing I do from time to time is just listen to speech going on around me and see if I can translate it to another language. Just randomly picking phrases as I hear them. This gives you the challenge of trying to translate language you haven't prepared. If you need to look up words, you'll have a context to remember them with. So you'll probably be learning new words and also trying to translate quickly so you can keep up with what you're hearing around you.
The more you turn the language over in your head, the quicker you'll get used to putting the blocks together, which in turn will make it sound fluid. You'll be familiar with how they go together and you'll be speaking them together rather than one piece at a time.
Remember that all those "blocks" that you're putting together and all the phrases you're building up a store of, have to be brought out, so speak them, express yourself, develop your fluency and accent and above all...communicate!
After all, that's the whole point of language.