It depends on your usage.
What is your CPU usage with your current system?
How much of it is IIS? How much of it is SQL?
What is your memory usage with your current system?
How much of it is IIS? How much of it is SQL?
Generally speaking, for small operations, combining IIS and SQL servers into one is fine. However, if you start breaking the 75% mark of your I/O maximums, it'd be about time to split up your servers. (75% is an arbitrary number, but it's ideal, because it means you're halfway from 50%, which means your system should be rocking, to 100% efficiency, which means your system cannot perform any better than it already is; planning at this stage will be less stressful than planning at 100% efficiency, because by 100%, your systems are already prone to problems and it's easier to tackle a problem proactively than reactively).
If the combined percentages of usages between IIS and SQL are equal to or greater than 75% or the arbitrary Desired Max Usage Percentage, then you should split them up.
Here's a guide (note, I just put it together off the top of my head, so I don't know how accurate the calculations are yet; and this doesn't account for hard drive bottlenecks or network latency. This also does not take into account poorly written applications that may take up too much resources unnecessarily, which won't change by beefing up a system):
Determine your current latency
Determine how much latency you're willing to accept and change that into an empirical quantitative numeric value. Example; If you are willing to take a little latency; how much? 100ms? 250ms? 500ms? 1s?
Determine if the latency you're willing to accept will be an average over time (ideally, at a minimum, a full 7 days) or an absolute maximum value (ideally, on the day your experience the most load on your server).
a) If the accepted latency is an average, calculate the average CPU and Memory usage values overtime
b) If the accepted latency is an absolute maximum value, calculate the max CPU and max Memory usage values at the highest load of the day
Determine Current Processing Capability/Memory Capacity
Determine your growth rate percentage per year; if you have no baseline data to compare, arbitrarily assume 10% growth every year or take 1 / (Current_Latency / Desired_Latency) x 100% / Years_System_Was_In_Service, whichever is higher.
Determine the processing power/memory capacity needed to keep your systems under 75% (Desired_Max_Usage_Percentage) utilization for the next Y amount of years, before your next upgrade. Resource_Needed = (Current_Usage_Percentage x Current_Capability) + (1 + (Y_Years x Growth_Percentage)) / Desired_Max_Usage_Percentage
Determine the adjusted value needed to accommodate for desired latency.
Example (CPU) 1:
Current Latency = 1000
Desired Latency = 500
Latency Variable = 1 + (1 / (1000 / 500)) = 1.5
Current_CPU_Usage = 100%
Current_Capability = 2CPU x 3.0GHz = 6.0GHz
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%
Minimum Resource = (1 x 6.0) + (1 x (3 x .1))/.75 = 7.73GHz
Adjustment For Latency = 7.73 x 1.5
Result: Upgrade to minimum 7.73GHz
Result to desired latency: 11.60GHz
Example (CPU) 2:
Current Latency = 1000
Desired Latency = 500
Current_CPU_Usage = 70%
Current_Capability = 2CPU x 3.0GHz = 6.0GHz
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%
Minimum Resource = (.7 x 6.0) + (1 x (3 x .1))/.75 = 5.93GHz
Adjustment For Latency = 5.93 x 1.5 = 8.90GHz
Result: No need to upgrade
Result to desired latency: 8.90GHz
Example (Memory) 1:
Current Latency = 1000
Desired Latency = 500
Latency Variable = 1 + (1 / (1000 / 500)) = 1.5
Current_Memory_Usage = 100%
Current_Capability = 4GB
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%
Minimum Resource = (1 x 4.0) + (1 x (3 x .1))/.75 = 5.73GB
Adjustment For Latency = 5.73 x 1.5 = 8.6GB
Result: Upgrade to minimum 5.73GB
Result to desired latency: 8.6GHz
Example (Memory) 2:
Current Latency = 1000
Desired Latency = 500
Latency Variable = 1 + (1 / (1000 / 500)) = 1.5
Current_Memory_Usage = 50%
Current_Capability = 4GB
Y_Years (to next upgrade) = 3
Growth_Percentage = 10%
Desired_Max_Usage_Percentage = 75%
Minimum Resource = (.5 x 4.0) + (1 x (3 x .1))/.75 =3.73GB
Adjustment For Latency = 3.73 x 1.5 = 5.23GB
Result: No need to upgrade
Result to desired latency: 5.23GB
Note: please take my examples with a grain of salt.
To plan for network capacity, hard disk storage capacity, or hard disk I/O metrics, you'd essentially do similar calculations.
TL:DR; If your CPU or Memory utilization is reaching 100%, you should probably split the IIS and SQL services into their own resources. However, before doing so, you should consider application/resource tuning, as hardware changes can be expensive, and will not resolve inefficient applications.