Yep, it works just like in "ordinary" fractions.
If you want to add 0.9 and 0.3, you first add 9 and 2 giving 12. So you write down 2 and carry 1 to the next position, giving 0 + 0 + 1 = 1. Therefore, 0.9 + 0.3 = 1.2
Similarly, if you want to add 0.1 and 0.1, you first do 1 + 1 = 10, so you write down 0 and carry 1 to the next position, giving 0 + 0 = 1. Therefore, 0.1 + 0.1 = 1.0.
Indeed, 0.1 in binary corresponds to 0.5 in decimal notation, and 0.5 + 0.5 = 1.0 which is also 1.0 in binary notation.
All this works for any base, in fact. For example, in a hexadecimal base, 0.a3 + 0.63 = 1.06, because 3 + 3 = 6 (write 6, carry 0); a + 6 + 0 = 10 (write 0, carry 1) and 0 + 0 + 1 = 1. This is sort of by definition of our system to write down numbers, in which any "overflow" of one position counter is automatically "caught" by the next one (i.e. if the units counter overflows then we start adding to the tens-counter).