Trapping sets strongly degrade performance of low-density parity-check (LDPC) codes in the low error rate region. This creates significant difficulties to the deployment of LDPC codes to low-error-rate applications like storage and wireless systems with no or limited retransmission options. This dissertation proposes a novel technique for breaking trapping sets based on collaborative decoding that utilizes two different decoding modes. While the main decoding mode executes message passing based on the original parity check matrix of the corresponding LDPC code, the sub-decoding mode operates on a modified parity check matrix formed by removing a portion of check nodes in the factor graph representation of the given code. The modified parity check matrix is designed to promote a passing of correct information into erroneous variable nodes in the trapping set. Theoretical properties of the proposed trapping-set-breaking technique have been established based on the notion of the improved separation for the trapped variable nodes. Simulation results show that the proposed collaborative LDPC decoding effectively breaks dominant trapping sets of various known types of regular and irregular LDPC codes. This dissertation also provides a hardware implementation of a bi-mode LDPC decoder based on the collaborative decoding. Implementation of the bi-mode collaborative decoder only requires a small number of additional hardware components to the conventional single decoder. For a (2048,1723) regular code, the bi-mode decoder requires 4% and less than 1% overhead for memory and logic, respectively.