Suppose that V is a normed vector space over ℂ. Let V* be the set of all bounded linear functions from V into ℂ. Now we define a function from V×V into V called addition by [tex](f+g)(v)=f(v)+g(v)[/tex] for all f,g in V* and all v in V. Then we define a function from ℂ×V into V called scalar multiplication by [tex](kf)(v)=k(f(v))[/tex] for all k in ℂ, all f in V*, and all v in V. These definitions give V* the structure of a vector space. It's called the dual space of V.
If V is a normed vector space over ℝ, replace every ℂ with ℝ in the definitions above.
Dual spaces aren't really significant for "elementary" applications. The concept is useful in QM, but it's mainly just to give us a notation (bra-ket notation) that's sometimes nicer than the alternatives. The only applications I know where dual spaces are needed are those that use differential geometry, in particular GR.