This is what I did, and it works great:
Drop the MSB (sign bit) of the product, and grab the next lower N bits.
Add the (N-2)th bit to these N bits. The result is the rounded number in the proper Q notation.
For example, lets say you have 011.01(3.25) * 011.11(3.75). Using a calculator you get 001100.0011. This can be thought of as 13x15=195.
If you do the rounding you get:
01100 + 00000 = 01100.
Now if you consider it as decimal Q2, it is 011.00= 3.00
3.25x3.75=12.1875
Divide this by 4 and you get 3.04, which is pretty close to the rounded result of 3.00.
Integers and fixed point are the same except being multiples of each other. 3.75 is the same as 15, except for a division by 4.
If you multiply integers together, you get a result which can then be rounded via the algorithm above, which is basically a division by 16.
Then, if you consider both the inputs and product as fixed point Q2, then all of them are divided by 4. If you divide both sides of the same equation by the same number, nothing changes.
The result of the integer multiplication is 195. The rounding divides it by 16 to yield 12.1875. The division by 4 yields 3.04.
Essentially, as some people pointed out, the rounding works regardless of the number of fractional points.