[ Answer to a PM since my PM is still broke.. ]
Primarily you would want at the very least matching SCSI or Fiber Channel Cards.. the rest i.e. Processor (dual or not, same speed or not same amount of ram etc..) is dependent on your failover. When the service you are clustering fails over from one box to the other will the surviving box be able to handle the load. This is why typically people say its best to have identical systems since you know that in case of failover you are sure the other machine is capable to handle the load.
Its not a necessity to have identical peices for everything but at the very least its best to get the same Scsi or fiber channel cards.
External storage units are like external hard drives that connect to your computer via scsi or fiber channel. The external storage units store the quorum space and any data partition needed for the paticular service you are trying to cluster. You need this space so that if one machine dies the other machine will pick up in place of the dead machine and will have the most up to date information. This is the only way to do Microsoft clustering.
What high availbility means is that you will be making some service (FTP, DHCP, WEB, DATABASE, ect..) availble as much as possible. If one machine goes down the other machine takes over without skipping a beat.
You could do other fancy things such as load balancing but this becomes an extra thing you add in front of Microsoft's clustering service.
It is not a simple thing to do nor is it something you desperatly need as a home user because of overhead in part price.