Let $X$ be a normal algebraic variety defined over $\mathbb{C}$. Is it possible to compactify $X$ to a normal projective variety? And if $X$ is smooth, is it possible to compactify $X$ to a smooth (or normal) projective variety?

With regards to the first question, the answer is yes as long as the variety is quasiprojective, meaning, it has some projective compactification (for example, if you started with a complete nonprojective variety, for example, Hartshorne, Chapter II, Exercise 7.13, then the answer would be no, as Mohan Kumar pointed out above): Here's the solution. Suppose that $X$ has some compactification inside projective space $\bar{X}$. Let $X^N$ be the normalization of $\bar{X}$ with normalization map $f$ (which is finite), and we need to show that $X^N$ is also projective. We will show that $X^N$ has a ample line bundle. Take $L$ to be an ample line bundle on $\bar{X}$, by Hartshorne, Chapter III, exercise 5.7(d), $f^* L$ is also ample and thus ${X}^N$ is projective. With regards to the second question (smooth), the answer is also yes (with the same caveat). Here's the solution. Take any embedding $\bar{X}$ into projective space. We know that $\bar{X}$ is only (possibly) singular on $\bar{X} \setminus X$. Now, apply virtually any resolution of singularities algorithm (from Hironaka, to BierstoneMilman, to Villamyor, to Wlodarczyk, to ...). This will only blowup over the singular points of $\bar{X}$ and thus gives you the desired compactification (note, blowups take projective varieties to projective varieties). For many other classes of singularities (like rational singularities), this is an open problem. For some discussion of the rational singularities question, see chapter 12 of Koll\'ars "Shaferavich Maps and Automorphic Forms." 

