<?xml version="1.0" encoding="us-ascii"?><InstanceReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Version>2.2.0.25</Version><hasSegments>false</hasSegments><hasScenarios>false</hasScenarios><ReportLongName>0202 - Disclosure - Comprehensive Income (Loss)</ReportLongName><DisplayLabelColumn>true</DisplayLabelColumn><ShowElementNames>false</ShowElementNames><RoundingOption /><HasEmbeddedReports>false</HasEmbeddedReports><Columns><Column><Id>1</Id><IsAbstractGroupTitle>false</IsAbstractGroupTitle><LabelColumn>false</LabelColumn><CurrencyCode>USD</CurrencyCode><FootnoteIndexer /><hasSegments>false</hasSegments><hasScenarios>false</hasScenarios><MCU><KeyName>1/1/2011 - 3/31/2011
USD ($)

USD ($) / shares
</KeyName><CurrencySymbol>$</CurrencySymbol><contextRef><ContextID>Jan-01-2011_Mar-31-2011</ContextID><EntitySchema>http://www.sec.gov/CIK</EntitySchema><EntityValue>0001030749</EntityValue><PeriodDisplayName /><PeriodType>duration</PeriodType><PeriodStartDate>2011-01-01T00:00:00</PeriodStartDate><PeriodEndDate>2011-03-31T00:00:00</PeriodEndDate><Segments /><Scenarios /></contextRef><UPS><UnitProperty><UnitID>USD</UnitID><UnitType>Standard</UnitType><StandardMeasure><MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema><MeasureValue>USD</MeasureValue><MeasureNamespace>iso4217</MeasureNamespace></StandardMeasure><Scale>0</Scale></UnitProperty><UnitProperty><UnitID>Shares</UnitID><UnitType>Standard</UnitType><StandardMeasure><MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema><MeasureValue>shares</MeasureValue><MeasureNamespace>xbrli</MeasureNamespace></StandardMeasure><Scale>0</Scale></UnitProperty><UnitProperty><UnitID>USDEPS</UnitID><UnitType>Divide</UnitType><NumeratorMeasure><MeasureSchema>http://www.xbrl.org/2003/iso4217</MeasureSchema><MeasureValue>USD</MeasureValue><MeasureNamespace>iso4217</MeasureNamespace></NumeratorMeasure><DenominatorMeasure><MeasureSchema>http://www.xbrl.org/2003/instance</MeasureSchema><MeasureValue>shares</MeasureValue><MeasureNamespace>xbrli</MeasureNamespace></DenominatorMeasure><Scale>0</Scale></UnitProperty></UPS><CurrencyCode>USD</CurrencyCode><OriginalCurrencyCode>USD</OriginalCurrencyCode></MCU><CurrencySymbol>$</CurrencySymbol><Labels><Label Id="1" Label="3 Months Ended" /><Label Id="2" Label="Mar. 31, 2011" /></Labels></Column></Columns><Rows><Row><Id>2</Id><IsAbstractGroupTitle>true</IsAbstractGroupTitle><Level>0</Level><ElementName>us-gaap_ComprehensiveIncomeNoteAbstract</ElementName><ElementPrefix>us-gaap</ElementPrefix><IsBaseElement>true</IsBaseElement><BalanceType>na</BalanceType><PeriodType>duration</PeriodType><ShortDefinition>No definition available.</ShortDefinition><IsReportTitle>false</IsReportTitle><IsSegmentTitle>false</IsSegmentTitle><IsSubReportEnd>false</IsSubReportEnd><IsCalendarTitle>false</IsCalendarTitle><IsTuple>false</IsTuple><IsEquityPrevioslyReportedAsRow>false</IsEquityPrevioslyReportedAsRow><IsEquityAdjustmentRow>false</IsEquityAdjustmentRow><IsBeginningBalance>false</IsBeginningBalance><IsEndingBalance>false</IsEndingBalance><IsReverseSign>false</IsReverseSign><PreferredLabelRole /><FootnoteIndexer /><Cells><Cell><Id>1</Id><IsNumeric>false</IsNumeric><IsRatio>false</IsRatio><DisplayZeroAsNone>false</DisplayZeroAsNone><NumericAmount>0</NumericAmount><RoundedNumericAmount>0</RoundedNumericAmount><NonNumbericText /><NonNumericTextHeader /><FootnoteIndexer /><CurrencyCode /><CurrencySymbol /><IsIndependantCurrency>false</IsIndependantCurrency><ShowCurrencySymbol>false</ShowCurrencySymbol><DisplayDateInUSFormat>false</DisplayDateInUSFormat><hasSegments>false</hasSegments><hasScenarios>false</hasScenarios></Cell></Cells><OriginalInstanceReportColumns /><Unit>Other</Unit><ElementDataType>xbrli:stringItemType</ElementDataType><SimpleDataType>string</SimpleDataType><ElementDefenition>No definition available.</ElementDefenition><IsTotalLabel>false</IsTotalLabel><IsEPS>false</IsEPS><Label>Comprehensive Income (Loss) [Abstract]</Label></Row><Row><Id>3</Id><IsAbstractGroupTitle>false</IsAbstractGroupTitle><Level>0</Level><ElementName>us-gaap_ComprehensiveIncomeNoteTextBlock</ElementName><ElementPrefix>us-gaap</ElementPrefix><IsBaseElement>true</IsBaseElement><BalanceType>na</BalanceType><PeriodType>duration</PeriodType><ShortDefinition>No definition available.</ShortDefinition><IsReportTitle>false</IsReportTitle><IsSegmentTitle>false</IsSegmentTitle><IsSubReportEnd>false</IsSubReportEnd><IsCalendarTitle>false</IsCalendarTitle><IsTuple>false</IsTuple><IsEquityPrevioslyReportedAsRow>false</IsEquityPrevioslyReportedAsRow><IsEquityAdjustmentRow>false</IsEquityAdjustmentRow><IsBeginningBalance>false</IsBeginningBalance><IsEndingBalance>false</IsEndingBalance><IsReverseSign>false</IsReverseSign><PreferredLabelRole>verboselabel</PreferredLabelRole><FootnoteIndexer /><Cells><Cell><Id>1</Id><IsNumeric>false</IsNumeric><IsRatio>false</IsRatio><DisplayZeroAsNone>false</DisplayZeroAsNone><NumericAmount>0</NumericAmount><RoundedNumericAmount>0</RoundedNumericAmount><NonNumbericText>&lt;!--DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" --&gt;
   &lt;!-- Begin Block Tagged Note 2 - us-gaap:ComprehensiveIncomeNoteTextBlock--&gt;
   &lt;div style="font-family: 'Times New Roman',Times,serif"&gt;
   &lt;div align="left" style="font-size: 10pt; margin-top: 6pt"&gt;&lt;b&gt;(2)&amp;#160;COMPREHENSIVE INCOME (LOSS)&lt;/b&gt;
   &lt;/div&gt;
   &lt;div align="left" style="font-size: 10pt; margin-top: 6pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;The components of comprehensive income (loss), net of related tax, are as follows:
   &lt;/div&gt;
   &lt;div align="center"&gt;
   &lt;table style="font-size: 10pt; text-align: left" cellspacing="0" border="0" cellpadding="0" width="100%"&gt;
   &lt;!-- Begin Table Head --&gt;
   &lt;tr valign="bottom"&gt;
       &lt;td width="76%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="5%"&gt;&amp;#160;&lt;/td&gt;
       &lt;td width="1%"&gt;&amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr style="font-size: 8pt" valign="bottom"&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="center" colspan="6"&gt;&lt;b&gt;Three Months Ended&lt;/b&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr style="font-size: 8pt" valign="bottom"&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="center" colspan="6" style="border-bottom: 1px solid #000000"&gt;&lt;b&gt;March 31,&lt;/b&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr style="font-size: 8pt" valign="bottom"&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="center" colspan="2" style="border-bottom: 1px solid #000000"&gt;&lt;b&gt;2011&lt;/b&gt;&lt;/td&gt;
       &lt;td style="border-bottom: 1px solid #000000"&gt;&amp;#160;&lt;/td&gt;
       &lt;td style="border-bottom: 1px solid #000000"&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="center" colspan="2" style="border-bottom: 1px solid #000000"&gt;&lt;b&gt;2010&lt;/b&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr style="font-size: 8pt" valign="bottom"&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="center" colspan="6"&gt;&lt;i&gt;(In thousands)&lt;/i&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;!-- End Table Head --&gt;
   &lt;!-- Begin Table Body --&gt;
   &lt;tr valign="bottom" style="background: #cceeff"&gt;
       &lt;td&gt;
   &lt;div style="margin-left:15px; text-indent:-15px"&gt;Net income
   &lt;/div&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="left"&gt;$&lt;/td&gt;
       &lt;td align="right"&gt;(1,167&lt;/td&gt;
       &lt;td nowrap="nowrap"&gt;)&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td align="left"&gt;$&lt;/td&gt;
       &lt;td align="right"&gt;21,543&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr valign="bottom"&gt;
       &lt;td&gt;
   &lt;div style="margin-left:15px; text-indent:-15px"&gt;Comprehensive income:
   &lt;/div&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr valign="bottom" style="background: #cceeff"&gt;
       &lt;td&gt;
   &lt;div style="margin-left:15px; text-indent:-15px"&gt;Unrealized gain (loss)&amp;#160;on cash flow hedge
   &lt;/div&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td align="right"&gt;507&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="left"&gt;&amp;#160;&lt;/td&gt;
       &lt;td align="right"&gt;(555&lt;/td&gt;
       &lt;td nowrap="nowrap"&gt;)&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr valign="bottom"&gt;
       &lt;td&gt;
   &lt;div style="margin-left:15px; text-indent:-15px"&gt;Foreign currency translation
   &lt;/div&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td align="right"&gt;18,087&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="left"&gt;&amp;#160;&lt;/td&gt;
       &lt;td align="right"&gt;(25,482&lt;/td&gt;
       &lt;td nowrap="nowrap"&gt;)&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr style="font-size: 1px"&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td colspan="7" nowrap="nowrap" align="left" style="border-top: 1px solid #000000"&gt;&amp;#160; &amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr valign="bottom" style="background: #cceeff"&gt;
       &lt;td&gt;
   &lt;div style="margin-left:15px; text-indent:-15px"&gt;Total comprehensive income (loss)
   &lt;/div&gt;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td align="left"&gt;$&lt;/td&gt;
       &lt;td align="right"&gt;17,427&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td nowrap="nowrap" align="left"&gt;$&lt;/td&gt;
       &lt;td align="right"&gt;(4,494&lt;/td&gt;
       &lt;td nowrap="nowrap"&gt;)&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr style="font-size: 1px"&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td&gt;&amp;#160;&lt;/td&gt;
       &lt;td colspan="7" nowrap="nowrap" align="left" style="border-top: 3px double #000000"&gt;&amp;#160; &amp;#160;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;!-- End Table Body --&gt;
   &lt;/table&gt;
   &lt;/div&gt;
   &lt;!-- Folio --&gt;
   &lt;!-- /Folio --&gt;
   &lt;/div&gt;
   &lt;!-- PAGEBREAK --&gt;
   &lt;div style="font-family: 'Times New Roman',Times,serif"&gt;
   &lt;div align="left" style="font-size: 10pt; margin-top: 6pt"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Our accumulated other comprehensive income (loss)&amp;#160;item relates primarily to our
   cumulative foreign currency translation adjustments, and adjustments related to our cash flow
   hedges.
   &lt;/div&gt;
   &lt;/div&gt;
</NonNumbericText><NonNumericTextHeader>&lt;!--DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" --&gt;
   &lt;!-- Begin Block Tagged Note</NonNumericTextHeader><FootnoteIndexer /><CurrencyCode /><CurrencySymbol /><IsIndependantCurrency>false</IsIndependantCurrency><ShowCurrencySymbol>false</ShowCurrencySymbol><DisplayDateInUSFormat>false</DisplayDateInUSFormat><hasSegments>false</hasSegments><hasScenarios>false</hasScenarios></Cell></Cells><OriginalInstanceReportColumns /><Unit>Other</Unit><ElementDataType>us-types:textBlockItemType</ElementDataType><SimpleDataType>string</SimpleDataType><ElementDefenition>This label may include the following:  1) the amount of income tax expense or benefit allocated to each component of other comprehensive income, including reclassification adjustments, 2) the reclassification adjustments for each classification of other comprehensive income and 3) the ending accumulated balances for each component of comprehensive income. Components of comprehensive income include: (1) foreign currency translation adjustments; (2) gains and losses on foreign currency transactions that are designated as, and are effective as, economic hedges of a net investment in a foreign entity; (3) gains and losses on intercompany foreign currency transactions that are of a long-term-investment nature, when the entities to the transaction are consolidated, combined, or accounted for by the equity method in the reporting enterprise's financial statements; (4) change in the market value of a futures contract that qualifies as a hedge of an asset reported at fair value; (5) unrealized holding gains and losses on available-for-sale securities and that resulting from transfers of debt securities from the held-to-maturity category to the available-for-sale category; (6) a net loss recognized as an additional pension liability not yet recognized as net periodic pension cost; and (7)  the net gain or loss and net prior service cost or credit for pension plans and other postretirement benefit plans.</ElementDefenition><ElementReferences>Reference 1: http://www.xbrl.org/2003/role/presentationRef
 -Publisher FASB
 -Name Statement of Financial Accounting Standard (FAS)
 -Number 130
 -Paragraph 14-26

</ElementReferences><IsTotalLabel>false</IsTotalLabel><IsEPS>false</IsEPS><Label>COMPREHENSIVE INCOME(LOSS)</Label></Row></Rows><Footnotes /><NumberOfCols>1</NumberOfCols><NumberOfRows>2</NumberOfRows><ReportName>Comprehensive Income (Loss)</ReportName><MonetaryRoundingLevel>UnKnown</MonetaryRoundingLevel><SharesRoundingLevel>UnKnown</SharesRoundingLevel><PerShareRoundingLevel>UnKnown</PerShareRoundingLevel><ExchangeRateRoundingLevel>UnKnown</ExchangeRateRoundingLevel><HasCustomUnits>false</HasCustomUnits><SharesShouldBeRounded>true</SharesShouldBeRounded></InstanceReport>
