What is a proof by contradiction? This is actually quite difficult to answer in a satisfactory way, but usually what people mean is something like this: given a statement $\phi$, a proof of $\phi$ by contradiction is a derivation of a contradiction from the assumption $\lnot \phi$. In order to analyse this, it is very important to distinguish between the statement $\phi$ and the statement $\lnot \lnot \phi$; the two statements are formally distinct (as obvious from the fact that their written forms are different!) even though they always have the same truth value in classical logic.
Let $\bot$ denote contradiction. When we show a contradiction assuming $\lnot \phi$, what we have is a conditional proof of $\bot$ from $\lnot \phi$. This can then be transformed into a proof of the statement $\lnot \phi \to \bot$, which is the long form of $\lnot \lnot \phi$ – in other words, we have a proof that "it is not the case that $\lnot \phi$". This, strictly speaking, is not a complete proof of $\phi$: we must still write down the last step deducing $\phi$ from $\lnot \lnot \phi$. This is the point of contention between constructivists and non-constructivists: in the constructive interpretation of logic, $\lnot \lnot \phi$ is not only formally distinct from $\phi$ but also semantically distinct; in particular, constructivists reject the principle that $\phi$ can be deduced from $\lnot \lnot \phi$ (though they may accept some limited instances of this rule).
There is one case where proof by contradiction is always acceptable to constructivists (or at least intuitionists): this is when the statement $\phi$ to be proven is itself of the form $\lnot \psi$. This is because it is a theorem of intuitionistic logic that $\lnot \lnot \lnot \psi$ holds if and only if $\lnot \psi$. On the other hand, it is also in principle possible to give a "direct" proof of $\lnot \psi$ in the following sense: we simply have to derive a contradiction by assuming $\psi$. Any proof of $\lnot \psi$ by contradiction can thus be transformed into a "direct" proof because one can always derive $\lnot \lnot \psi$ from $\psi$; so if we can obtain a contradiction by assuming $\lnot \lnot \psi$, we can certainly derive a contradiction by assuming $\psi$.
Ultimately, both of the above methods involve making a counterfactual assumption and deriving a contradiction. However, it is sometimes possible to "push" the negation inward and even eliminate it. For example, if $\phi$ is the statement "there exists an $x$ such that $\theta (x)$ holds", then $\lnot \phi$ can be deduced from the statement "$\theta (x)$ does not hold for any $x$". In particular, if $\theta (x)$ is itself a negative statement, say $\lnot \sigma (x)$, then $\lnot \phi$ can be deduced from the statement "$\sigma (x)$ holds for all $x$". Thus, proving "there does not exist an $x$ such that $\sigma (x)$ does not hold" by showing "$\sigma (x)$ holds for all $x$" might be considered a more "direct" proof than either of the two previously-mentioned approaches.
Can all proofs by contradiction be transformed into direct proofs? In some sense the answer has to be no: intuitionistic logic is known to be weaker than classical logic, i.e. there are statements have proofs in classical logic but not intuitionistic logic. The only difference between classical logic and intuitionistic logic is the principle that $\phi$ is deducible from $\lnot \lnot \phi$, so this (in some sense) implies that there are theorems that can only be proven by contradiction.
So what are the advantages of proof by contradiction? Well, it makes proofs easier. So much so that one algorithm for automatically proving theorems in propositional logic is based on it. But it also has its disadvantages: a proof by contradiction can be more confusing (because it has counterfactual assumptions floating around!), and in a precise technical sense it is less satisfactory because it generally cannot be (re)used in constructive contexts. But most mathematicians don't worry about the latter problem.