Greg Maddux was great at preventing HRs and great at not walking batters. It must be tough for a pitcher to achieve that combination because you are putting the ball in strike zone alot where the batters can hit it. To rate pitchers on this combination, I used data from the Lee Sinins Complete Baseball Encyclopedia which tells us how much better or worse than the league average a pitcher was in various stats.
Maddux, for example, gave up 49% fewer HRs than the league average (what the 1.49 means in the graph below) while walking 86% fewer batters. My HRBB rating multiplies these two numbers together. The table below shows the top 25 among pitchers with 2000+ IP from 1946-2009. Maddux has a pretty clear edge over the competition.
But then I realized that Maddux was not a great strikeout pitcher. He was not preventing batters from hitting HRs by overpowering them. I decided to then multiply each pitcher's HR rate, BB rate and SO rate. But first, I inverted the rate of strikeouts. Maddux struck out 94% as many batters as the average pitcher. Being below average in strikeouts increases the difficulty in achieving a high HRBB rate because there is a positive correlation between not allowing HRs and striking batters out (about .15). So for Maddux, 1/.94 = 1.06, indicating that he was 6% worse at striking out batters than average. So his HRBBSO rating would be 1.49*1.86*1.06 = 2.95.
But notice in the table that he finishes 2nd behind Lew Burdette, who somehow managed to give up 7 fewer HRs than average and walk 76% fewer batters while striking out 61% fewer batters. Pitching the bulk of his career for the Braves in County stadium may have helped. The simple average of the HR park factors from 1952-1962 (which includes the last year the Braves played in Boston) has Burdette with a 75. So he pitched in parks that only allowed about 75% as many HRs as average. For Maddux, from 1987-2003, his parks allowed about 109% of the league average (HR park factors from various Bill James books).
I tried to adjust for this (for these two guys). Assuming that a pitcher pitches half his innings at home, and that he allowed 7% fewer HRs than average (for a rate of 1.07) and that his park has a 75 rating, I thought it best to multiply the 1.07 by .875 (which is half way between 1 and .75). That left Burdette with a HR rate of .936 (which now means he allowed 6.4% more HRs than average). For Maddux, I multipled his 1.49 by 1.045 (half way between 1 and 1.09). That gives him an adjusted HR rate of 1.56. Then recalculating the HRBBSO rate, Burdette ends up with 2.66 while Maddux ends up with 3.09.