Holding is simply preventing someone from moving where they want to.
This can be by grabbing a shirt as you indicated but it could also be other activities.
If a defender is shepherding a ball out of play and puts his arms out to make himself bigger to make it difficult for an opponent to get to the ball when not in playing distance, this is impeding and an IDFK is awarded to the attacker. If however, during this action, the defender uses his arms or body and contracts the attacker, it now becomes holding and a DFK can be awarded.
If a player moves in front of an opponent and uses his body to check or stop the players progress (to let a defending team mate get to the ball for instance) when not in playing distance, this is also holding.
There would also be many other instances to give. In summary, holding is using your arms or body to prevent an opponent going where they want.
Some holding occurs as part of the game and can be simply sporting contact and the referee needs to evaluate that (what influence did it have on the game for example). There are times when holding is overlooked as it does not interfere with play and was only minor contact. The holding you need to look for is strategic holding (to disadvantage the opponent) or a professional hold (to break up an attack or something like that).
Taken from "Interpretation of the Laws of the Game and Guidelines for Referees" 2011-2012 (page 112):
Holding an opponent Holding an opponent includes the act of preventing him from moving past or around using the hands, the arms or the body. Referees are reminded to make an early intervention and to deal firmly with holding offences especially inside the penalty area at corner kicks and free kicks. To deal with these situations: • the referee must warn any player holding an opponent before the ball is in play • caution the player if the holding continues before the ball is in play • award a direct free kick or penalty kick and caution the player if it happens once the ball is in play If a defender starts holding an attacker outside the penalty area and continues holding him inside the penalty area, the referee must award a penalty kick. Disciplinary sanctions • A caution for unsporting behaviour must be issued when a player holds an opponent to prevent him gaining possession of the ball or taking up an advantageous position • A player must be sent off if he denies an obvious goalscoring opportunity by holding an opponent • No further disciplinary action must be taken in other situations of holding an opponent Restart of play • Direct free kick from the position where the offence occurred (see Law 1 3 — Position of free kick) or a penalty kick if the offence occurred inside the penalty area
Holding can be from any part of the body if you deliberately stop someone from going where they want (holding them back).
A good example is at corners where an attacker can stand in front of the keeper. All can stand where they want to but if they move to impede the keeper, IDK. If they use their arms or body to hold the keeper back, DK against them.
Charging is usually when larger than required force is used IMHO. If players go shoulder to shoulder with similar force, play on. If one of them rushes in much harder then the other, I would call foul. For example, a player is running along the touch line with the ball. A defender comes in a right angles at significant speed and hits shoulder to shoulder (compared to the attacker) and the attacker is bowled well and truly over, even if the contact was shoulder to shoulder, I would call foul. However, if both are running together and the defender nudges the attacker off the ball with the shoulder (uses good timing for the challenge) for me, play on.
If both are running side by side and one gets in front and uses his body to stop the progress of the other when the ball is not in playing distance, holding!
A little shoulder to shoulder when they're in playing distance is just sporting contact. Play on.