You can use pretty much any software or R code that has been developed for gene-expression for protein data also. Look for any tools developed for microarrays.
You can try Genesis, it is a free software that implements hierarchical and non hierarchical algorithms to identify similar expressed genes and expression patterns, including: 1) hierarchical clustering, 2) k-means, 3) self organizing maps, 4) principal component analysis, and 5) support vector machines. http://genome.tugraz.at/genesisclient/genesisclient_description.shtml
R can handle large data very easily, and without hanging the system, and usually gene expression data is huge ! If your project has a major portion on gene expression analysis, then I will recommend you to learn R. Its not so difficult. Many modules are already made in R regarding gene expression. Bioconductor's LIMMA is a good option (see attached link).
But if you want to analyze not a huge data, then Jonathan Moore and Ursula Chong are guiding you the right path.
Gene Cluster 3.0, will perform heirarchical clustering with various cluster methods and correlations. It's based on the Cluster program developed by Michael Eisen. You need treeview to visualise the heatmaps and dendrograms. Both can be found here. http://bonsai.hgc.jp/~mdehoon/software/cluster/software.htm