Why are some LDPC codes more immune to noise than others?
As you mention, the LDPC code is completely determined by its generator matrix H. Hence, the properties of H define the (theoretic) performance of the code. 

Since the LDPC code is a linear code, the ultimate measure for the (theoretic) code performance is its minimum distance between two codewords, that is:

$$
d = \min_{c_1,c_2\in\mathcal{C}}\|c_1-c_2\|_0
$$

where $\mathcal{C}$ is the set of existing codewords (i.e. bit patterns that fulfill the parity check) and $\|\ldots\|_0$ denotes the hamming distance. This is equal to the expression (since it's a linear code)

$$
d = \min_{c\in\mathcal{C}}\|c\|_0
$$

where $\|\|_0$ is the Hamming weight. 

I wrote the word "theoretically" in parenthesis, since the finally obtained performance does also depend on the decoding algorithm. Due to the low-density of the parity check nodes, the LDPC is suitable for iterative decoding, which can yield big gains. 

Another improtant measure is the length of the shortest cycle of the LDPC Tanner Graph. The shorter the cycle, the worse is the performance of the iterative decoding.