Hi Yaj,
no the Manipulate is not necessarily to check where the function is defined. I used Manipulate only so that the Plot function would have values for all parameters. The main problem in your command was that if you do not specify k and m Mathematica cannot plot anything. (Well, technically it can, but its not what you wanted.) Manipulate masks that by providing values for k and m that you can later change.
Regarding the domain of the function: If you use the Wolfram Cloud (highly recommended), or Mathematica on the Raspberry Pi or Mathematica 10, and type in
FunctionDomain[p^2/((p^2 - k^2) (p^2 + m^2)),p]
you get
![]()
which is the Domain. You can also get essentially the same result if you consult WolframAlpha in Mathematica
== Domain p^2/((p^2 - k^2) (p^2 + m^2))
or via the internet
http://www.wolframalpha.com/input/?i=domain+p%5E2%2F%28%28p%5E2±+k%5E2%29+%28p%5E2+%2B+m%5E2%29%29
you should get
![]()
which is the same result. You also might find this thread useful.
Hope this helps,
Marco