The -13 volts is correct.
When you say "...so the potential at A would be 20-1 = 19V...", you are using the unlabeled point between the 20 volt battery and the 6 ohm resistor as your reference (ground?). You didn't mention it, but you should be aware when you make such a choice. Remember that voltage is always a relative thing; you must measure or compute with respect to some reference point. I would have chosen point a as my reference because the question wants to know the voltage at point b RELATIVE to point a. This makes point a the logical reference. But since the question wants to know the DIFFERENCE in voltage between point a and point b, any point in the circuit can be the reference because it will fall out of the equation when the difference is taken.
For the next problem, if you know the currents, then moving from point a to point b, multiply the current in the top branch by the 3 ohm resistor to find the voltage across that resistor. Multiply the current in the second branch by the 4 ohm resistor to find the voltage across that resistor. Then the voltage between point a and point b will be the sum of the voltages across the 3 and 4 ohm resistors, taking into account the polarity of each voltage.