Converting raw gyro (L3GD20H) values into angles
But I don't understand why the angle values are added with previous values.  


They are added to previous values because they aren't angles, instead being angular velocities. The "gyro" is in proper terms called an angular rate sensor: it is incapable of measuring absolute angles, instead measuring the angular velocity of the sensor (how fast it turns). The raw values are in sensor-specific units and they must be converted to degrees or radians per second by multiplying with a gain value (G_GAIN, which determines how many degrees/radians a raw "count" corresponds to) and the sampling interval (DT) in order to make the data useful. In your code, this is accomplished with:

inrate_gyr_x = (float) gyrRaw[0] * G_GAIN;
gyroXangle+=rate_gyr_x*DT;

Just as it is possible to estimate distance traveled in a car given the speed and time traveled, it is possible to estimate the current angle of the sensor by measuring the angular velocity over time and summing the results. This operation is called integration in mathematics and is exactly what that code does with:  

inrate_gyr_x = (float) gyrRaw[0] * G_GAIN;
gyroXangle+= rate_gyr_x*DT;  

The code is as it is now incomplete since it does not account for gyro drift. The sensor is not perfect, and will probably return a nonzero angular velocity even when completely stationary. This must be countered by adding a compensation term to the measured angular velocity before integration, or the estimated angle will drift away from the correct value even without motion.

Furthermore, the sensor gain is probably not exactly the same along the different axis due to the manufacturing process etc. If the gain is wrong, a 360° rotation can register as, for example, 349° or 368°. In order to correct for this, you should have separate gains for each of the axis, so you can tune them independently.  

All this would be taken into account with the following code:  

rate_gyr_x = (float) gyrRaw[0] * G_GAIN_X;  
rate_gyr_y = (float) gyrRaw[1] * G_GAIN_Y;  
rate_gyr_z = (float) gyrRaw[2] * G_GAIN_Z;  
gyroXangle += rate_gyr_x * DT - est_drift_x;  
gyroYangle += rate_gyr_y * DT - est_drift_y;  
gyroZangle += rate_gyr_z * DT - est_drift_z;