InnateDB is a great resource, if you have access check out Ingenuity Pathway Analysis. As Vikas said, I think going with doing your GOA first and then parsing the results accordingly is a good way to go. Once you get your results you can parse accordingly. DAVID is a great option, and Bioconductor/R offer a huge range of tools.
I do not think that you really want to instantly bias your results by cherrypicking your terms of interest for a number of reasons. For one, the relative portion of immune related terms vs non is an interesting result as it hints at the magnitude and the significance of the immune response. I think using the total pool of GO rather than a biased subset is just a better overall response.
There will be a lot of general things that can show up like signal transduction, transport, and so on. You should watch out for terms and pathways representing impacts of immune system activation. Big ones off the top of my head are cell proliferation, migration, motility and differentiation. Sure you might want to see terms for T-cell activation, but the functions (what GO actually annotates) can be much more system-agnostic.
If there is anything I've learned it is that the immune system is incredibly well integrated to the whole biological network in an organism (mammals in my experience). It'd honestly be easier to toss out the things that aren't immune system functions. Most of the critical network hubs (NF-kB, JAKs, STATS, PKCs, etc) are absolutely critical for immune system function but because they are such critical hubs, they're used by so many other processes. Additionally, the processes the immune system starts and stops aren't always under the immune system umbrella, I can't imagine you'd really want to miss these.
I really think you should be open to gathering as much data as possible under the most diverse set of functional annotations you can get. After that look at the genes that are driving the over-representation of these functions. From there you should be able to gain insight into what system is driving the over-representation of which terms. Lastly, in this kind of analysis the boring stuff are the usual suspects, the strongly hit term that has 'weird' genes driving is what you want to find.
As a first step, I would use DAVID for GO analysis. Just paste your gene list and select the background and use the functional annotation tool. Then you can look at over represented GO terms (if there are any as compare to background) and you can quickly see if there are any GO terms related to immune system.
Its only about innate, but maybe helps... http://www.innatedb.com/batchSearchInit.jsp?type=go