Where do the full conditionals come from in Gibbs sampling? MCMC algorithms like Metropolis-Hastings and Gibbs sampling are ways of sampling from the joint posterior distributions.  
I think I understand and can implement metropolis-hasting pretty easily--you simply choose starting points somehow, and 'walk the parameter space' randomly, guided by the posterior density and proposal density.  Gibbs sampling seems very similar but more efficient since it updates only one parameter at a time, while holding the others constant, effectively walking the space in an orthogonal fashion. 
In order to do this, you need the full conditional of each parameter in analytical from*.  But where do these full conditionals come from? 
$$
P(x_1 | x_2,\ \ldots,\ x_n) = \frac{P(x_1,\ \ldots,\ x_n)}{P(x_2,\ \ldots,\ x_n)}
$$
To get the denominator you need to marginalize the joint over $x_1$. That seems like a whole lot of work to do analytically if there are many parameters, and might not be tractable if the joint distribution isn't very 'nice'.  I realize that if you use conjugacy throughout the model, the full conditionals may be easy, but there's got to be a better way for more general situations.
All the examples of Gibbs sampling I've seen online use toy examples (like sampling from a multivariate normal, where the conditionals are just normals themselves), and seem to dodge this issue.  
* Or do you need the full conditionals in analytical form at all? How do programs like winBUGS do it?
 A: Yes, you are right, the conditional distribution needs to be found analytically, but I think there are lots of examples where the full conditional distribution is easy to find, and has a far simpler form than the joint distribution. 
The intuition for this is as follows, in most "realistic" joint distributions $P(X_1,\dots,X_n)$, most of the $X_i$'s are generally conditionally independent of most of the other random variables. That is to say, some of the variables have local interactions, say $X_i$ depends on $X_{i-1}$ and $X_{i+1}$, but doesn't interact with everything, hence the conditional distributions should simplify significantly as $Pr(X_i|X_1, \dots, X_i) = Pr(X_i|X_{i-1}, X_{i+1})$
A: I think you've missed the main advantage of algorithms like of Metropolis-Hastings. For Gibbs sampling, you will need to sample from the full conditionals.  You are right, that is rarely easy to do. The main advantage of Metropolis-Hastings algorithms is that you can still sample one parameter at a time, but you only need to know the full conditionals up to proportionality.  This is because the denominators cancel in the acceptance criteria function  
The unnormalized full conditionals are often available.  For instance, in your example
$P(x_1 | x_2,...,x_n) \propto P(x_1,...,x_n)$, which you have.  You don't need to do any integrals analytically. In most applications, a lot more will likely cancel too.
Programs like WinBugs/Jags typically take Metropolis-Hastings or slice sampling steps that only require the conditionals up to proportionality.  These are easily available from the DAG.  Given conjugacy, they also sometimes take straight Gibbs steps or fancy block stops.
